tidyr:按另一个data.frame中的值对过滤

时间:2018-10-23 14:58:43

标签: r dataframe filter tidyr

说我有这个坏主题的data.frame:

df_bad = data.frame(id=c(1,2,3), condition=c('fun', 'boring', 'boring'))

主题1在“有趣”状态下是坏的,主题2和3在“无聊”状态下是坏的。现在我有了我的数据:

df = data.frame(id=c(1,1,2,2,3,3), condition=rep(c('fun', 'boring'), times=3), score=rnorm(6))

如何使用df删除与id中的一对conditiondf_bad匹配的tidyr行?即,如何最终得到此data.frame:

df = data.frame(id=c(1,2,3), condition=c('boring', 'fun', 'fun'), score=df$score[c(2,3,5)])

理想情况下,该解决方案也应适用于df_bad中的三元组值。

1 个答案:

答案 0 :(得分:3)

我们可以使用anti_join

library(dplyr)
anti_join(df, df_bad)