2014-05-07 22 views
0

我有一個CSV文件,其中包含9541對點ID和它們之間的距離的列表,另一個文件包含相同的對但每個文件的距離不同。我99%確定他們是同一對。從R中的數據表合併中查找額外的行

我把它們放在桌子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個額外的行,以便我能弄清楚他們爲什麼在那裏?

我試過合併m返回ab看哪些行有NA,但是沒有。即使是更奇怪的,現在有9565行。如果我合併了一小部分數據幀,它可以很好地工作,但是我想知道是否有更合適的方法來找出發生錯誤的方法,而不是合併越來越多的子集,直到獲得意外數量的行。

回答

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) 
+0

啊,你點上,謝謝。順便說一下,'b1 [duplicateated(b1),]'顯示了4個重複項:是否有一個簡單的方法來顯示所有8個點,即重複項和它們重複的點? (如果他們在'b'有不同的距離) – stewartml

+1

我已經添加了幾行代碼 - 這是你需要的嗎? –

+0

完美,謝謝 – stewartml