使用R,如何基于一个变量的不连续性间断来子集化数据集

fivyi3re  于 2023-05-20  发布在  其他
关注(0)|答案(1)|浏览(78)

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

p5cysglq

p5cysglq1#

我们可以在用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

相关问题