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

时间:2015-04-02 22:40:29

标签: r date

我试图隐藏以下日期格式。我在使用lubridate包中的parse_date_time和strfttime函数时遇到了麻烦,因为它将整个列转换为相同的日期,或者因为它继续返回day值。我不想在我的解决方案中查看任何日期。

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

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

1 个答案:

答案 0 :(得分:4)

试试这个:

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

这种形式不便于操作(绘图等)。您可能更喜欢使用动物园包中的"yearmon"类,该类在内部存储年份/月份作为年份+分数,其中1月份的分数为0,2月份为1月12日,12月份为12月12日。在输出时,默认渲染是,例如Jan 2000

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