【发布时间】:2021-10-01 06:24:12
【问题描述】:
我有一个看起来像这样的数据框,带有 ID 和两个条件:
df <- data.frame(ID=c("A", "A", "A", "B", "C"), cond1=c("yes", "yes", "no", "no", "yes"), cond2=c("no", "no", "yes", "yes", "yes"))
df
ID cond1 cond2
1 A yes no
2 A yes no
3 A no yes
4 B no yes
5 C yes yes
我想过滤适用 cond1 和 cond2 的 ID (=yes),但它不必在同一行中为真。这意味着我想过滤掉 ID A 和 C,而不是 B。
我尝试使用 dplyr 对 group_by() 和 filter() 进行分组:
df %>%
group_by(PID)%>%
filter(cond1==yes&cond2==yes)
但这只会过滤掉 cond 1 和 cond 2 都适用的 PID/行(因此只有 ID C/行 5)。
我可以做些什么来按组过滤 PID/行,其中两个条件都 t0 在一组内为真,但不在一行内?
谢谢!
【问题讨论】:
标签: r if-statement filter dplyr group-by