r - 间隔 R 内的周末日期

标签 r date lubridate chron

我正在尝试确定周末是否属于日期间隔内。我已经能够确定特定日期是否是周末,但在尝试查看一系列日期时却无法确定。这可能吗?如果是这样,请指教。 TIA。

library(lubridate, chron)
start.date <- c("1/1/2017", "2/1/2017")
end.date   <- c("1/21/2017", "2/11/2017")

df <- data.frame(start.date, end.date)

df$start.date <- mdy(df$start.date)
df$end.date   <- mdy(df$end.date)

df$interval.date <- interval(df$start.date, df$end.date)

df$weekend.exist <- ifelse(is.weekend(df$interval.date), 1, 0)
# Error in dts - floor(dts) : 
#   Arithmetic operators undefined for 'Interval' and 'Interval' classes:
#   convert one to numeric or a matching time-span class.

最佳答案

为什么您不喜欢日期的 seq 而不是创建间隔?喜欢

df$weekend.exist <- sapply(1:nrow(df), function(i) 
                as.numeric(any(is.weekend(seq(df$start.date[i], df$end.date[i],by = "day")))))
# [1] 1 1

library(dplyr)
df %>% 
group_by(start.date,end.date) %>%  
mutate(weekend.exist = as.numeric(any(is.weekend(seq(start.date, end.date,by = "day")))))
#   start.date   end.date weekend.exist
#      <date>     <date>         <dbl>
# 1 2017-01-01 2017-01-21             1
# 2 2017-02-01 2017-02-03             1

关于r - 间隔 R 内的周末日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41599978/

相关文章:

r - 如何将日期和分钟添加到 R 中的日期时间对象?

c++ - 将 Python 翻译成 Rcpp

r - 如何在 heatmap.2() 中为原始数据分配色阶

php - 根据 MySQL 参数格式化 html 中的日期

mysql - excel将mysql日期格式作为文本格式

java - 转换后的 java.util.Date 的 ChronoUnit.between()

r - 索引向量中的连续重复项

R,在 Windows 中获取文件名中的完整文件路径字符串(空格等)

r - 在 R 中从一年到十年

r - 在时间轴上设置休息时间间隔