tidyr: фильтр по парам значений в другом data.frame - PullRequest
0 голосов
/ 23 октября 2018

Скажите, что у меня есть эти данные. Рамка плохих предметов:

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 AND condition в df_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 голосов
/ 23 октября 2018

Мы можем использовать anti_join

library(dplyr)
anti_join(df, df_bad)
...