从R中的数据表合并中查找额外的行

时间:2014-05-07 13:16:44

标签: r dataframe

我有一个CSV文件,其中包含9541对点ID和它们之间的距离列表,以及另一个包含相同对但每个距离不同的文件。我99%肯定他们是同一对。

我已将它们放在表ab中,并将它们合并为:

names(a) <- c('Point1', 'Point2', 'Distance')
names(b) <- c('Point1', 'Point2', 'Cheby')
m <- merge(a, b)

除了m之外,所有好的行都比我预期的多8行。我也尝试与all.x=TRUEall.y=TRUE合并,结果相同,没有字段NA。我怎么找到8个额外的行是什么,所以我可以弄清楚它们为什么存在?

我尝试将mab合并,以查看哪些行NA,但没有。甚至更奇怪,现在有9565行。如果我合并了一小部分数据帧,它就可以完美地运行,但是我想知道是否有更优雅的方法来找出出错的地方,而不是合并越来越大的子集,直到我得到意想不到的行数。

1 个答案:

答案 0 :(得分:2)

听起来有些点可能会在数据框中重复出现?尝试

a1 <- a[,-ncol(a)]
a1[duplicated(a1),]
b1 <- b[,-ncol(b)]
b1[duplicated(b1),]

查看是否有任何重复点。

修改另外,要获取a中包含重复点的所有行,您可以执行以下操作:

a1 <- a[,-ncol(a)]
duplicated_points_a <- a1[duplicated(a1),]
merge(duplicated_points_a, a)