假设有一张如下的表格:
id value
1 1 a
2 2 a
3 2 b
4 2 c
5 3 c
我希望筛选出:
a) 只具有值a的id,例如id1。
b) 同时包含a和b的id,例如id2。
数据:
data.frame(id = c(1,2,2,2,3), value = c("a", "a", "b", "c", "c"))
Try
a)
df %>% group_by(id) %>% filter(all(value == "a"))
df %>% group_by(id) %>% filter(all(c("a", "b") %in% value))
这里有一种替代方法,可以同时用于a)和b)
df %>% group_by(id) %>% arrange(value) %>% summarize(value=paste(value,collapse="")) %>% filter(grepl("ab",value))
结果:
id value
(dbl) (chr)
1 2 abc
希望这能有所帮助
df%>% group_by(id)%>% filter(any(value ==“a”)&any(value ==“b”))
- Sam Dickson