我需要列出假期,包括纽约证券交易所假期加上哥伦布日和退伍军人节。为此,我使用了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年的问题。当然我也可以独立运行这三个并绑定它们。那只是一个补丁;如果我能避免它,我宁愿不必这样做。谢谢你的帮助。
答案 0 :(得分:1)
这解决了两个问题:
library(timeDate)
years <- 2015
holidayEIA <- function(x){ c(holidayNYSE(x),
USColumbusDay(x)@Data+ 14400,
USVeteransDay(x)@Data+ 18000)}
holidayEIA(years)