我有一个看起来像这样的数据集:
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。
答案 0 :(得分:1)
我假设您正在使用is.holiday
包中的chron
函数。我建议不要使用该软件包。自编写以来,R中的日期函数已得到改进,因此不需要。
如果要使用is.holiday
,则需要以chron
期望的格式提供假期列表。这不容易;请参阅2016年的How to define holidays for is.holiday() chron package in R问题进行讨论。
但是,如果要提供假期列表,则不需要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
最后。