繁体   English   中英

如何在R中的向量内对连续日期进行分组?

[英]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"

上面splitvector s的list 如果我们需要带有分组列的data.frame

df1 <- data.frame(dates1, group = cumsum(c(TRUE, diff(dates1) != 1)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM