测试日期是否为r中的假期

时间:2019-02-02 09:08:07

标签: r date time-series chron

我有一个看起来像这样的数据集:

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 :(得分: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

最后。