确定R中两个数据集之间的不同行

时间:2010-06-28 13:35:15

标签: r csv comparison rows import-from-csv

我有两个以制表符分隔的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行。 file2可以是一个完全包含file1加50行的文件;或者它可能是file1 - 10 rows + 60 rows。我想确定两个数据集之间的差异。我对相互的行没兴趣。

我怎么能在R?中做到这一点?

1 个答案:

答案 0 :(得分:3)

有很多方法可以做到这一点,包括setdiffintersect%in%函数,is.element。只需找到相交集并使用!

将其排除
diff1 <- file1[setdiff(file1$ep.code, file2$ep.code),]

diff2 <- file2[!(intersect(file2$ep.code, file1$ep.code)),]