2014-02-06 131 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