Какие переменные отличаются между двумя разными наборами данных? - PullRequest
0 голосов
/ 03 апреля 2020

Итак, у меня есть два разных набора данных (df_test и df_test_2), и я хочу быть в состоянии определить разницу между ними. Я знаю, что могу использовать setdiff, чтобы рассказать о различиях между ними, но мне нужно знать, где они отличаются. Например, я хочу посмотреть на строки, где var_1 отличается, а все остальное - то же самое, и я также хочу сделать тот же анализ с var_2 и всеми другими переменными. Есть ли у меня флаги для этих переменных?

df_test <- data.frame(id = c(0,1,1,1,2,3,4,5,5)
                          , var_1 = c("h","a","b","b","c","d","e","f","m"),
                          var_2=c("companyf","companyA","companyB","companyc","companyD","companyf","companyg","companyh","companyi"),
                          var_3=c(100,10,10,11,20,30,40,50,5))

    df_test_2= data.frame(id = c(1,1,1,2,3,4,5,5,6,6)
                             , var_1 = c("a","b","b","c","d","e","f","g","h","i"),
                             var_2=c("companyA","companyBB","companyc","companyD","companyf","companyg","companyh","companyi","companyii","companyff"),
                             var_3=c(10,10,11,200,30,40,50,5,40,20))

1 Ответ

0 голосов
/ 04 апреля 2020

Мы можем попытаться изменить ваш подход, используя setdiff и which

Для поиска значений var_1, которые существуют в df1, но отсутствуют в df2

df1[which(df1$var_1 == setdiff(df1$var_1,df2$var_1)),]

Вывод для var_1

  id var_1    var_2 var_3
9  5     m companyi     5

Для поиска значений var_2, которые существуют в df1, но отсутствуют в df2

df1[which(df1$var_2 == setdiff(df1$var_2,df2$var_2)),]

Выход для var_2

id var_1    var_2 var_3
3  1     b companyB    10
...