将数值转换为r中的yyyymm日期



我正在尝试转换以下日期格式。我在使用lubridate包中的parse_date_time和strfttime函数时遇到了问题,因为它要么将整列转换为同一日期,要么一直返回日期值。我不想在我的解决方案中看到任何日期。

 mydata=data.frame(dates=c(200102,200102,200111,200202),desired=c('2001-02','2001-02', '2001-11','2002-02'))

我只想在我的专栏中返回YYYY-mm格式。我做这件事有困难。我尝试过使用

试试这个:

transform(mydata, desired = sub("(....)(..)", "\1-\2", dates))

此表单不便于操作(绘图等)。您可能更喜欢使用zoo包中的"yearmon"类,该类在内部将年/月存储为年+分数,其中分数为0表示1月,1/12表示2月。。。,12月11日。在输出时,默认渲染为,例如,Jan 2000:

library(zoo)
transform(mydata, ym = as.yearmon(as.character(dates), "%Y%m"))

最新更新