将每月数字转换为R

时间:2019-01-29 10:05:28

标签: r datetime

在将整数转换为日期时,如何设置R以计数月份而不是日期?  在阅读了有关如何在R中转换日期的几个线程之后,似乎没有人问过如果数字是按月时间序列给出的,则如何转换数字日期。例如。 552代表2006年1月。

我已经尝试了几种方法,例如使用as.Date(dates,origin="1899-12-01"),但是我认识到R是几天而不是几个月。因此,上面的年份-月份数字552上的代码将产生“ 1901-06-06”,而不是正确的2006-01-01。

旁注:我也希望格式为YEARmonth,但是R是否允许显示不带日期的日期?

1 个答案:

答案 0 :(得分:2)

我认为您的开始日期应该是“ 1960-01-01”。

无论如何,您可以使用软件包lubridate解决此问题。

在这种情况下,您可以从日期开始并添加月份。

library(lubridate)
as.Date('1960-01-01') %m+% months(552)

它给你

[1] "2006-01-01"

您只能显示日期的年和月,但在这种情况下,R会将日期强制转换为字符。

format(as.Date('2006-01-01'), "%Y-%m")