Dav*_*vid 2 r subset dplyr tibble
我有一个数据框,我创建了一系列虚拟变量,然后将它们组合成i final列.我想知道我是否有一个连续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
Run Code Online (Sandbox Code Playgroud)
这个包data.table有一个很好的函数叫做rleid创建基于diff不为0的组.使用它,你可以这样做,
library(tidyverse)
df %>%
group_by(grp = data.table::rleid(df$a)) %>%
filter(n() >= 3 & all(a == 1))
Run Code Online (Sandbox Code Playgroud)