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

搜索过但无法找到答案.从本质上讲,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函数并编写那些不存在的函数.某个地方有人可能已经这样做了吗?

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

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

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

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

点赞