2014-03-31 87 views
4

搜索周圍,但無法找到答案。從本質上講,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設立了英國,美國,瑞士和加拿大,但其餘的G7特別是日本和澳大利亞都失蹤了。也許這屬於其他一些包?如果它不符合我的計劃,那麼基本上可以混合修改現有的timeDate函數並編寫那些不存在的函數。某個地方的人可能已經這樣做了?

回答

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包,做的這個。也許你可以從網絡上的某個地方刮掉它?

+1

1968年6月28日,國會通過了統一的星期一假日法案,該法案將包括陣亡將士紀念日在內的四個假日從其傳統日期移至指定的星期一,以創造一個便利的爲期三天的週末。 – rawr