我这里的数据是dput

df <- structure(list(start_date = structure(c(18312, 18313, 18314, 
18316, 18317, 18318, 18319, 18320, 18321), class = "Date")), row.names = c(NA, 
-9L), class = "data.frame")

看起来是这样的;

  start_date
  <date>    
1 2020-02-20
2 2020-02-21
3 2020-02-22
4 2020-02-24
5 2020-02-25
6 2020-02-26
7 2020-02-27
8 2020-02-28
9 2020-02-29

我想创建一个汇总表,其中涵盖了每个非中断日期范围的开始和结束日期.期望的输出看起来是这样的;

  start      end       
  <date>     <date>    
1 2020-02-20 2020-02-22
2 2020-02-24 2020-02-29

data.table种解决方案也是受欢迎的.

先谢谢你.

推荐答案

使用折叠包将日期按seqid(start_date)分组.

library(collapse)
library(dplyr)

df %>%
  group_by(group = seqid(start_date)) %>%
  summarize(start = min(start_date), end = max(start_date), .groups = "drop")
## # A tibble: 2 × 3
##   group start      end       
##   <qG>  <date>     <date>    
## 1 1     2020-02-20 2020-02-22
## 2 2     2020-02-24 2020-02-29

R相关问答推荐

如何通过Exams2黑板对非整数字的问题进行评分

逐行替代引用前一行的for循环

将收件箱变量传递给ggplot 2函数

从API中抓取R数据SON

检测(并替换)字符串中的数学符号

MCMC和零事件二元逻辑回归

根据R中的另一个日期从多列中 Select 最近的日期和相应的结果

抖动点与嵌套类别变量箱形图的位置不对齐

基于不同组的列的相关性

使用gcuminc,如何使用逗号格式化风险表?

然后根据不同的列值有条件地执行函数

传递ggplot2的变量作为函数参数—没有映射级别以正确填充美学

将重复项转换为NA

R -使用矩阵reshape 列表

如何使用For-R循环在向量中找到一系列数字

如何将一个方阵分解成没有循环的立方体

如何对r中包含特定(未知)文本的行求和?

为什么在写入CSV文件时Purrr::Pwalk不起作用

如何判断代码是否在R Markdown(RMD)上下文中交互运行?

通过R:文件名未正确写入[已解决]将.nc文件转换和导出为.tif文件