2014-02-06 143 views
-1

我有兩個文件。我想要合併的File1和File2。R:合併兩個文件

File1中

seqno var1 var2 var3 
7  1  65  2 
7  2  64  2 
7  3  37  1 
7  3  26  1 
8  1  50  3 
8  3  29  2 
8  6  5  1 
8  6  4  1 

文件2

seqno var4 var5 var6 
7  1  65  9132 
7  2  37  
7  3  37  
7  3  26  5162 
8  1  50  
8  3  29  1314 
8  5  26  
8  6  5  
8  6  4  

行具有相同的SeqNo都在同一組中。我想合併這些文件,這樣File1中的組中的個人(通過seqno)將具有在File2中找到的變量。也就是說,排除組中不在File1中但在File2中的個人。

用於比較的變量是(var1,var2)和(var4,var5)。

輸出文件應該是這樣的。

seqno var1 var2 var3 seqno var4 var5 var6 
7  1  65  2  7  1  65  9132 
7  3  37  1  7  3  37  
7  3  26  1  7  3  26  5162 
8  1  50  3  8  1  50  
8  3  29  2  8  3  29  1314 
8  6  5  1  8  6  5  
8  6  4  1  8  6  4  

謝謝!

+0

我不確定我完全理解你想做什麼,因爲'seqno'不是唯一的,所以R應該如何知道哪些行要與哪些行合併?爲什麼從文件1的第2行與從文件2的第2行合併,而不是從文件2的第3行合併? – January

+0

我很抱歉的混亂。 seqno每組都是唯一的。代碼將看3個變量。如果(seqno&var1&var2)與(seqno&var4&var5)相同,那麼這些行將會合並。 – dixi

回答

0

這可能是你需要的。

merge(file1, file2, by.x=c(seqno,var1, var2), by.y=by=c(seqno,var3, var4)) 
+0

謝謝@ananta! – dixi