在这类数据中:
df <- data.frame(
id = 1:12,
Sequ = c(1,1,1,1,
3,3,3,
5,5,5,
6,6),
N_ipu = c(1,0,1,1,
1,4,1,
1,1,1,
5,1)
)我需要删除包含在列0、和 1.之外的列N_ipu值中的连续行的Sequ。我试过以下几种方法,但没有取得什么成功:
df %>%
group_by(Sequ) %>%
# filter(N_ipu %in% c(1,0))
# filter(if_all(N_ipu) %in% c(1,0))
# filter(if_all(N_ipu), ~all(.) %in% c(1,0))使用dplyr,我如何将df作为只包含0和1的整体在Sequ上进行子集?所需的输出如下:
id Sequ N_ipu
1 1 1 1
2 2 1 0
3 3 1 1
4 4 1 1
8 8 5 1
9 9 5 1
10 10 5 1发布于 2022-01-04 10:59:04
使用any移除组的所有元素,使用!反转所选内容。
df %>%
group_by(Sequ) %>%
filter(!any(N_ipu > 1))
# A tibble: 7 x 3
# Groups: Sequ [2]
id Sequ N_ipu
<int> <dbl> <dbl>
1 1 1 1
2 2 1 0
3 3 1 1
4 4 1 1
5 8 5 1
6 9 5 1
7 10 5 1发布于 2022-01-04 11:01:26
你很亲密
df %>%
group_by(Sequ) %>%
filter(all(N_ipu %in% c(1,0))) id Sequ N_ipu
<int> <dbl> <dbl>
1 1 1 1
2 2 1 0
3 3 1 1
4 4 1 1
5 8 5 1
6 9 5 1
7 10 5 1https://stackoverflow.com/questions/70577644
复制相似问题