Мне нужно составить список праздников, который включает в себя каникулы NYSE плюс День Колумба и День ветеранов. Для этого я использовал timeDate
пакет следующим образом:R timeDate package - выходной выпуск выпуск
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 год. Конечно, я мог бы также запустить три самостоятельно, и они свяжут их. Это всего лишь патч; Я бы предпочел не делать этого, если смогу этого избежать. Спасибо за помощь.
Удаление 'as.Date()' от функции, кажется, производит правильные даты, но все же с отметкой времени. Возможно, это связано с проблемами часового пояса. «holidayNYSE» ссылается на Нью-Йорк, тогда как другие два - GMT. – Gopala
Фактически, если вы посмотрите на объект timeDate, он имеет атрибут Data, который имеет правильное значение даты. Таким образом, получите доступ к нему как 'c (holidayNYSE (x), USColumbusDay (x) @Data, USVeteransDay (x) @Data)'. По-прежнему GMT. – Gopala
Спасибо, Гопала. Это скорректировало неправильные даты (выпуск 1969 года), но все же получил отметку времени. Проблема заключается в часовом поясе, как вы предложили. 'TimeDate' отмечает разные Timezones и предоставляет« [2015-10-11 20:00:00] [2015-11-10 19:00:00] »в качестве вывода для' USColumbusDay (2015) 'и' USVeteransDay (2015) '(т.е. переместился на день до GMT). Так что догадайтесь, что нет решения, кроме как запускать их отдельно и связывать их, или запускать их совместно, и устранять это время. Хотите сказать это как ответ? – Krug