【发布时间】:2014-03-23 07:36:23
【问题描述】:
我在 R 中使用了一个名为 midasr 的包,它可以帮助我使用每日数据作为回归量来预测每月数据。为此,我需要确保给定年份的每个月都有相同的天数。例如,在像二月这样的月份,它永远不会到第 30 天或第 31 天,我仍然需要能够为该日期指定一个值 (NA),以保持一致的格式。当我尝试指定现实生活中从未出现过的日期时(2009 年是非闰年,所以第 29 天不会发生)我在日期列下得到一个 NA,如下所示。有没有办法解决这个问题?我需要它显示“2009-02-29”。
> as.Date('2009-02-29', format="%Y-%m-%d")
[1] NA
> as.Date('2009-02-25', format="%Y-%m-%d")
[1] "2009-02-25"
> as.Date('2009-02-27', format="%Y-%m-%d")
[1] "2009-02-27"
> as.Date('2009-02-28', format="%Y-%m-%d")
[1] "2009-02-28"
> as.Date('2009-02-29', format="%Y-%m-%d")
[1] NA
附加:我还尝试让“不可能”日期保持为“NA”,并在数据框中以正确的顺序放置(在这种情况下正好低于 2 月 28 日)。但是当我把它变成一个动物园对象时,“NA 日期”被发送到时间序列的末尾,所以这不起作用。
【问题讨论】:
-
2009 年不是闰年...
-
@sparrow 你没有看问题
-
我不确定您是否可以这样做,除非您只是将日期表示为字符串。 R 将日期存储为从 1970 年 1 月 1 日开始的天数,所以
as.numeric(as.Date('2009-02-28', format="%Y-%m-%d"))是14303和as.numeric(as.Date('2009-03-01', format="%Y-%m-%d"))是14304所以这就是为什么你在 2 月 29 日得到NA的原因——在 14303 和14304 -
对不起。但是你想如何指定一个不可能的日期?您可以有一个 NA,或者将不可能的日期作为字符串:
"2009-02-29" -
你能展示更多你的数据结构吗?
midasr通常与每周和每月汇总数据一起使用。查看您要使用的midasr包中的数据和函数会有所帮助。
标签: r