比较来自世界各地的卖家的域名和 IT 服务价格

转型月MMM到数字

我得到了 csv 一个响起的列 month 作为变量 char 随着月份的前三个字母。 E.g.:


"Jan", "Feb","Mar",..."Dec"


有没有办法将其转换为月份的数值表示 1 到 12 甚至在日期格式的类型中?
已邀请:

君笑尘

赞同来自:

使用
match

和预定义的矢量
month.abb

:


tst <- c/"Jan","Mar","Dec"/
match/tst,month.abb/
[1] 1 3 12

二哥

赞同来自:

您可以使用内置向量
month.abb

例如,在转换时检查 :


mm <- c/"Jan","Dec","jan","Mar","Apr"/

sapply/mm,function/x/ grep/paste/"/?i/",x,sep=""/,month.abb//
Jan Dec jan Mar Apr
1 12 1 3 4


设计 grep 关心资本化的差异。 如果没有必要,


match/mm,month.abb/


它也有效。

如果您还有一天和年份,可以使用相应的代码使用任何转换函数 /也可以看看
?strftime

/

例如。


mm <- c/"Jan","Dec","jan","Mar","Apr"/
year <- c/1998,1998,1999,1999,1999/
day <- c/4,10,3,16,25/

dates <- paste/year,mm,day,sep="-"/

strptime/dates,format="%Y-%b-%d"/
[1] "1998-01-04" "1998-12-10" "1999-01-03" "1999-03-16" "1999-04-25"

帅驴

赞同来自:

只需添加到现有答案并评论问题:


readr::parse_date/"20/DEZEMBRO/18","%d/%B/%y",locale=locale/"pt"//


格式化日期结果
"2018-12-20"

.
locale/"pt"/

对于在巴西使用的葡萄牙语,可以制造
"es"

对于西班牙语,
"fr"

对于法国等。

喜特乐

赞同来自:

几个使用选项:


vec <- c/"Jan","Dec","Jan","Apr"/





> Months <- 1:12
> names/Months/ <- month.abb
> unname/Months[vec]/
[1] 1 12 1 4


和/或者


> match/vec, month.abb/
[1] 1 12 1 4

要回复问题请先登录注册