Проверьте, является ли дата выходным днем ​​в г - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть набор данных, который выглядит следующим образом:

9/1/2014 00:00:25  
9/1/2014 00:00:28  
9/1/2014 00:00:40  

Есть еще много наблюдений ...

Я хочу создать столбец, который указывает, является ли дата выходнымили нет, поэтому я использовал функцию is.holiday().Это мой код:

final_uber_4$is_holiday <- is.holiday(final_uber_4$interv) 

Проблема в том, что он возвращает 0 для всех наблюдений, хотя я точно знаю, что в моем наборе данных есть праздники.

1 Ответ

0 голосов
/ 02 февраля 2019

Я предполагаю, что вы используете функцию is.holiday из пакета chron.Я бы рекомендовал не использовать этот пакет;функции даты в R улучшились с тех пор, как она была написана, и она не нужна.

Если вы хотите использовать is.holiday, вам нужно предоставить список праздников в формате, ожидаемом chron,Это не легко;см. этот вопрос Как определить праздники для пакета is.holiday () chron в R от 2016 года для обсуждения.

Но если вы предоставляете список праздников, вы ненужно is.holiday.Просто используйте %in%.Например,

holidays <- as.Date(c(NewYears = "2014-01-01", Christmas = "2014-12-25"))
# Add more to the list above...

# Convert your data plus a holiday to POSIXct format:
interv <- as.POSIXct(c("9/1/2014 00:00:25", 
                       "9/1/2014 00:00:28",
                       "9/1/2014 00:00:40",
                       "1/1/2014 00:00:00"), format = "%m/%d/%Y %H:%M:%S")

# Extract the date:
dates <- as.Date(interv)

# Test if you've got a holiday:
dates %in% holidays

Это дает мне

[1] FALSE FALSE FALSE  TRUE

в конце.

...