给出如下表格:
id value
1 1 a
2 2 a
3 2 b
4 2 c
5 3 c
我想过滤:
a)仅具有值a的id,即id 1。
b)包含a和b的id,即id 2。
数据:
data.frame(id = c(1,2,2,2,3), value = c("a", "a", "b", "c", "c"))
答案 0 :(得分:9)
尝试
A)
df %>% group_by(id) %>% filter(all(value == "a"))
b)中
df %>% group_by(id) %>% filter(all(c("a", "b") %in% value))
答案 1 :(得分:0)
这是一种可用于a)和b)
的替代方法df %>% group_by(id) %>% arrange(value) %>% summarize(value=paste(value,collapse="")) %>% filter(grepl("ab",value))
结果:
id value
(dbl) (chr)
1 2 abc
希望这有帮助