如何在timeDate中访问“正确”的假期

时间:2014-03-31 17:21:24

标签: r date calendar

周围搜索但无法找到答案。从本质上讲,timeDate包有一些它没有暴露的内部代码,我想知道如何实现它:

> USDecorationMemorialDay(2013)

GMT
[1] [2013-05-30]

> holidayNYSE(2013)

NewYork
[1] [2013-01-01] [2013-01-21] [2013-02-18] [2013-03-29] [2013-05-27] [2013-07-04] [2013-09-02] [2013-11-28] [2013-12-25]

所以你可以在这里看到USDecorationMemorialDay函数是错误的,因为阵亡将士纪念日是五月的最后一个星期一。但是在holidayNYSE函数中,他们以某种方式实现了修正,因此它给出了[2013-05-27]。那是什么?

更大的图片我真的希望按国家/地区制作全国假日日程表。 timeDate已经建立了英国,美国,瑞士和加拿大,但其他七国集团尤其是日本和澳大利亚都没有。也许这属于其他一些包?如果不是我的计划是基本上混合修改现有的timeDate函数并编写那些不存在的函数。某个地方有人可能已经这样做了吗?

1 个答案:

答案 0 :(得分:2)

您可以通过在控制台中键入没有括号的函数名来检查函数holidayNYSE函数。您可以在此处查看相关部分

if (y <= 1970) 
   holidays <- c(holidays, as.character(USDecorationMemorialDay(y)))
if (y >= 1971) 
   holidays <- c(holidays, as.character(USMemorialDay(y)))

显然,USDecorationMemorialDay是一个已经过时的假期,仅与1971年之前相关。

对于你的大图片问题,我不知道有任何R包这样做。也许你可以从网上把它刮掉?