Определение разных строк между двумя наборами данных в R

У меня есть два файла данных в формате CSV, разделенном табуляцией. Файлы имеют следующий формат:

EP Code    EP Name    Address    Region    ...
101654    Alpha     York Street    Northwest    ...
103628    Beta    5th Avenue    South    ...

Коды EP уникальны. Что я хочу сделать, так это сравнить два файла по кодам EP, определить разные строки и записать их в новый файл.

Например, файл file1.csv содержит 800 строк, а файл file2.csv — 850 строк. файл2 может быть файлом, полностью включая файл1 плюс 50 строк; или это может быть file1 - 10 rows + 60 rows. Я хочу определить различия между двумя наборами данных. Меня не интересуют взаимные ссоры.

Как я могу сделать это в R?


person Mehper C. Palavuzlar    schedule 28.06.2010    source источник
comment
Тесно связанные: stackoverflow.com/questions/1837968/.   -  person Shane    schedule 28.06.2010


Ответы (1)


Есть много способов сделать это, включая setdiff, intersect, функцию %in%, is.element. Просто найдите пересекающийся набор и исключите его, используя !:

diff1 <- file1[setdiff(file1$ep.code, file2$ep.code),]

or

diff2 <- file2[!(intersect(file2$ep.code, file1$ep.code)),]
person Shane    schedule 28.06.2010
comment
Спасибо за ответ. Я думаю, что перед последней запятой в последней строке кода должна быть дополнительная правая скобка. - person Mehper C. Palavuzlar; 28.06.2010