将每月数字转换为R中的可读日期

将每月数字转换为R中的可读日期,r,datetime,R,Datetime,在将整数转换为日期时,如何将R设置为计数月份而不是日期? 在阅读了几个关于如何在R中转换日期的线程之后,似乎没有人问如果数字是在每月时间序列中给出的,那么如何转换数字日期。例如,552代表2006年1月 我尝试过几种方法,例如使用作为.Date(dates,origin=“1899-12-01”),但我发现R是以天而不是月为单位的。因此,上面年份-月份编号552上的代码生成“1901-06-06”,而不是正确的2006-01-01 旁注:我也希望格式为YEARmonth,但R是否允许显示没有天数

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

我尝试过几种方法,例如使用
作为.Date(dates,origin=“1899-12-01”)
,但我发现R是以天而不是月为单位的。因此,上面年份-月份编号552上的代码生成“1901-06-06”,而不是正确的2006-01-01


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

我认为您的开始日期应该是“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")

我想你的出发日期应该是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")

你能给出你的数据样本吗?当1899年12月开始计数时,552代表2006年1月吗?你能给出你的数据样本吗?当1899年12月开始计数时,552代表2006年1月吗?在package
zoo
中还有class
yearmon
。在package中还有class
yearmon
zoo