Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 存在n个连续假人时的子集_R_Dplyr_Subset_Tibble - Fatal编程技术网

R 存在n个连续假人时的子集

R 存在n个连续假人时的子集,r,dplyr,subset,tibble,R,Dplyr,Subset,Tibble,我有一个数据框,我创建了一系列虚拟变量,然后将它们组合到最后一列中。我想知道我是否有一个连续3个1的情况,也就是说,在下面的示例中,有没有一种方法可以将数据帧子集,从而得到第3:5行 df <- tibble( a= c(0, 0, 1, 1, 1, 0, 1, 1) ) df # A tibble: 8 x 1 a <dbl> 1 0 2 0 3 1 4 1 5 1 6 0 7 1

我有一个数据框,我创建了一系列虚拟变量,然后将它们组合到最后一列中。我想知道我是否有一个连续3个1的情况,也就是说,在下面的示例中,有没有一种方法可以将数据帧子集,从而得到第3:5行

df <-  tibble(
      a= c(0, 0, 1, 1, 1, 0, 1, 1)
    )
df

# A tibble: 8 x 1
      a
  <dbl>
1     0
2     0
3     1
4     1
5     1
6     0
7     1
8     1

df包
data.table
有一个很好的函数,名为
rleid
,它根据
diff
不为0创建组。用它,你可以

library(tidyverse)

df %>% 
 group_by(grp = data.table::rleid(df$a)) %>% 
 filter(n() >= 3 & all(a == 1))

@索托斯。我想知道是否存在没有data.table的tidyverse解决方案。