【发布时间】:2019-12-30 12:38:38
【问题描述】:
我从具有以下日期类型的某人那里获得了数据:
"Jan-20", "Feb-19", "May-18"
我想将它们转换成以下格式:
"01-20", "02-19", "05-18"
但每当我尝试将该列转换为 as.date 时,它都会返回 NA 值。
例如
df<- data.frame(MonthYear = c("Jan-20", "Feb-19", "May-18"))
df$MonthYear<-as.Date(df$MonthYear, format = "%b-%y")
输出:
MonthYear
1 <NA>
2 <NA>
3 <NA>
所以我使用了以下代码并添加了日期。但我不想要日期:
df<- data.frame(MonthYear = c("Jan-20", "Feb-19", "May-18"))
df$MonthYear<-paste(as.character(df$MonthYear))
df$MonthYear<-paste("01-",as.character(df$MonthYear))
df$MonthYear<-as.Date(df$MonthYear, format = "%d- %b-%y")
输出:
MonthYear
1 2020-01-01
2 2019-02-01
3 2018-05-01
但我需要的输出如下:
MonthYear
1 2020-01
2 2019-02
3 2018-05
【问题讨论】:
-
如果你只是想将
"Jan-20"转换成"01-20",也可以基于正则表达式进行替换,如:stringr::str_replace_all(c("Jan-20", "Feb-19", "May-18"), setNames(sprintf("%02d", 1:12), month.abb))