我无法根据ifelse条件限制数据集。
这是我的数据框的示例:
structure(list(id = c(111, 111, 111, 112, 112, 112), se = c(1,
2, 3, 1, 2, 3), pe = c(1, 1, 2, 1, 1, 1)), class = "data.frame", row.names = c(NA,
-6L))
我需要选择ID和pe相同的案例
终点表应该是这样:
id se pe
112 1 1
112 2 1
112 3 1
答案 0 :(得分:1)
我建议使用dplyr
的下一种方法。您可以计算标志以确定唯一元素的数量,然后进行过滤。标志为nid
和npe
。这里的代码包含df
您的dput()
数据:
library(dplyr)
#Code
df %>% group_by(id) %>% mutate(nid = n_distinct(id),npe = n_distinct(pe)) %>%
filter(nid==1 & npe==1) %>% select(-c(nid,npe))
输出:
# A tibble: 3 x 3
# Groups: id [1]
id se pe
<dbl> <dbl> <dbl>
1 112 1 1
2 112 2 1
3 112 3 1
答案 1 :(得分:0)
我们也可以在不创建/删除新列的情况下完成此操作
library(dplyr)
df1 %>%
group_by(id) %>%
filter(n_distinct(se) == 1 | n_distinct(pe) == 1)
# A tibble: 3 x 3
# Groups: id [1]
# id se pe
# <dbl> <dbl> <dbl>
#1 112 1 1
#2 112 2 1
#3 112 3 1