【问题标题】:tidyr: filter by pairs of values in another data.frametidyr:按另一个 data.frame 中的值对过滤
【发布时间】:2018-10-23 14:58:42
【问题描述】:

假设我有这个不良主题的数据框架:

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))

如何使用tidyr 删除与df_bad 中的一对idcondition 匹配的df 行?即,我如何最终得到这个 data.frame:

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

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

【问题讨论】:

    标签: r dataframe filter tidyr


    【解决方案1】:

    我们可以使用anti_join

    library(dplyr)
    anti_join(df, df_bad)
    

    【讨论】:

      猜你喜欢
      • 2018-02-16
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2012-04-04
      • 1970-01-01
      • 2015-02-11
      相关资源
      最近更新 更多