R timeDate包 - 假期输出问题

时间:2016-04-30 00:01:19

标签: r datetime calendar

我需要列出假期,包括纽约证券交易所假期加上哥伦布日和退伍军人节。为此,我使用了timeDate包,如下所示:

library(timeDate)
years <- 2015

holidayEIA <- function(x){ c(holidayNYSE(x),
                             as.Date(USColumbusDay(x)),
                             as.Date(USVeteransDay(x))) }
holidayEIA(years)

输出包括1969年的两个日期。它还在日期旁边添加了一个时间。我可以用一行代码去除包含1969的时间戳和元素。然而,更喜欢那些从一开始就不存在的人。

#Output
[1] [2015-01-01 00:00:00] [2015-01-19 00:00:00] [2015-02-16 00:00:00]
[4] [2015-04-03 00:00:00] [2015-05-25 00:00:00] [2015-07-03 00:00:00]
[7] [2015-09-07 00:00:00] [2015-11-26 00:00:00] [2015-12-25 00:00:00]
[10] [1969-12-31 23:38:40] [1969-12-31 23:39:10]

如果我分别运行holidayNYSE(2015)USColumbusDay(2015)USVeteransDay(2015),则生成的timeDate对象没有时间戳,并且没有1969年。我不明白为什么一起运行所有三个结果在时间戳中添加和在1969年的问题。当然我也可以独立运行这三个并绑定它们。那只是一个补丁;如果我能避免它,我宁愿不必这样做。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

这解决了两个问题:

library(timeDate)
years <- 2015

holidayEIA <- function(x){ c(holidayNYSE(x), 
                             USColumbusDay(x)@Data+ 14400, 
                             USVeteransDay(x)@Data+ 18000)}
holidayEIA(years)