我正在努力根据一个连续变量--让我们称之为"时间"--对一个数据集进行子集划分,从1开始,每行递增1(1,2,3,4,5,...),但有时我会得到一些遗漏的值,所以我会得到一些" skip "(例如.1、2、3、4、5、610、11、1220、21、22、23.这些 skip 是随机的,因此它们之间不会有相同数量的缺失值.当这些" skip "发生时,我希望将数据集拆分成多个数据集,因此在我的示例中,它将给出一个数据集从1到6,另一个从10到12,以及另一个从20到23. 你知道怎么做吗?那将是很大的帮助...

推荐答案

在定义具有cumsum(c(1, diff(Time) != 1))的连续组之后,我们可以使用group_split:

library(dplyr)
library(purrr)
library(tibble)

tibble(Time = c(1, 2, 3, 4, 5, 6, 10, 11, 12, 20, 21, 22, 23)) %>% 
  group_split(group = cumsum(c(1, diff(Time) != 1))) %>% 
  map(~ select(., -group)) 

[[1]]
# A tibble: 6 × 1
   Time
  <dbl>
1     1
2     2
3     3
4     4
5     5
6     6

[[2]]
# A tibble: 3 × 1
   Time
  <dbl>
1    10
2    11
3    12

[[3]]
# A tibble: 4 × 1
   Time
  <dbl>
1    20
2    21
3    22
4    23

R相关问答推荐

使用格式化程序自定义hc_tooltip以添加textColor删除了我的标记并try 将它们带回失败

如何根据包含相同值的某些列获取总额

混淆矩阵,其中每列和等于1

在R中列表的结尾添加数字载体

如何修复R码的置换部分?

根据模式将一列拆分为多列,并在R中进行拆分

根据选中三个复选框中的一个或两个来调整绘图

在"gt"表中添加第二个"groupname_col",而不连接列值

如何从当前行上方找到符合特定条件的最接近值?

为什么在ggplot2中添加geom_text这么慢?

在df中保留原始变量和新变量

如何通过判断数据框的一列来压缩另一列?

如何在科学记数法中显示因子

使用R中的dist()迭代ID匹配的欧几里德距离

根据另一列中的值和条件查找新列的值

有没有可能用shiny 的书签恢复手风琴面板?

当由base::限定时,`[.factor`引发NextMethod错误

如何使用ggplot2根据绘图中生成的斜率对小平面进行排序?

隐藏基于 case 总数的值

列间序列生成器的功能