首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R: gsub -替换月份(当前为月份的实名)

R: gsub -替换月份(当前为月份的实名)
EN

Stack Overflow用户
提问于 2015-03-03 04:24:00
回答 1查看 761关注 0票数 0

我有一个列的数据框架:“Mes”。它是一个数字向量。一月有一个,二月有两个,依此类推。但我需要几个月的名字。

这是我的密码:

我能做什么才能得到我所需要的?

例如,"Diciembre“转换为:"EneroFebrero”。

代码语言:javascript
运行
复制
df$Mes <- gsub(1, "Enero", df$Mes)
df$Mes <- gsub(2, "Febrero", df$Mes)
df$Mes <- gsub(3, "Marzo", df$Mes)
df$Mes <- gsub(4, "Abril", df$Mes)
df$Mes <- gsub(5, "Mayo", df$Mes)
df$Mes <- gsub(6, "Junio", df$Mes)
df$Mes <- gsub(7, "Julio", df$Mes)
df$Mes <- gsub(8, "Agosto", df$Mes)
df$Mes <- gsub(9, "Setiembre", df$Mes)
df$Mes <- gsub(10, "Octubre", df$Mes)
df$Mes <- gsub(11, "Noviembre", df$Mes)
df$Mes <- gsub(12, "Diciembre", df$Mes)

结果:

当我应用:"unique(df$Mes)":获取以下内容:

代码语言:javascript
运行
复制
 [1] "Enero"        "Febrero"      "Marzo"        "Abril"        "Mayo"         "Junio"       
 [7] "Julio"        "Agosto"       "Setiembre"    "Enero0"       "EneroEnero"   "EneroFebrero"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-03 04:31:17

问题是,gsub(1, ...)将匹配"1“、"10”、"11“和" 12”中的"1",除非您用"^“和"$”(例如,gsub("^1$", "Enero", Mes))限制它,或者除非您在长长的gsub代码列表中从12到1。

一个更简单的方法可能是使用factor或基本的基于索引的匹配。

示例:

代码语言:javascript
运行
复制
set.seed(1)
Mes <- sample(12, 20, TRUE)

index <- c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", 
           "Agosto", "Setiembre", "Octubre", "Noviembre", "Diciembre")

index[Mes]
#  [1] "Abril"     "Mayo"      "Julio"     "Noviembre" "Marzo"     "Noviembre"
#  [7] "Diciembre" "Agosto"    "Agosto"    "Enero"     "Marzo"     "Marzo"    
# [13] "Setiembre" "Mayo"      "Octubre"   "Junio"     "Setiembre" "Diciembre"
# [19] "Mayo"      "Octubre"  
factor(Mes, levels = 1:12, labels = index)
#  [1] Abril     Mayo      Julio     Noviembre Marzo     Noviembre Diciembre Agosto   
#  [9] Agosto    Enero     Marzo     Marzo     Setiembre Mayo      Octubre   Junio    
# [17] Setiembre Diciembre Mayo      Octubre  
# 12 Levels: Enero Febrero Marzo Abril Mayo Junio Julio Agosto Setiembre ... Diciembre
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28824063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档