[英]How do I group consecutive dates within a Vector in R?
我下面有一个日期向量;
dates <- c("2018-05-16", "2018-07-20", "2018-06-25", "2018-06-26", "2018-07-21", "2018-07-22", "2018-05-17")
我想将连续的日期分组在一起。 这可能吗?
即我想要一组中的日期“ 2018-05-16”和“ 2018-05-17”,另一组中的日期“ 2018-07-20”,“ 2018-07-21”和“ 2018-07-22”最后是另一组中的“ 2018-06-25”和“ 2018-06-26”。
通过在线研究,我发现我可能必须使用以下代码;
dateGroups <- c(NA,diff(as.Date(dates))==1)
但是我不确定。
我们需要sort
然后进行比较
dates1 <- sort(as.Date(dates))
split(dates1, cumsum(c(TRUE, diff(dates1) != 1)))
#$`1`
#[1] "2018-05-16" "2018-05-17"
#$`2`
#[1] "2018-06-25" "2018-06-26"
#$`3`
#[1] "2018-07-20" "2018-07-21" "2018-07-22"
上面split
了vector
s的list
。 如果我们需要带有分组列的data.frame
df1 <- data.frame(dates1, group = cumsum(c(TRUE, diff(dates1) != 1)))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.