基于两个变量(一个匹配和一个比较)合并r中不同长度的文件

时间:2016-07-20 22:08:17

标签: r file merge

我有两个要合并的文件。第一个文件有几个变量;两个重要的是ID和END。 ID不是唯一的行;多个行可以具有相同的ID。第二个文件有两个变量,ID和START。在此文件中,每个id都是唯一的 - 没有具有相同ID的行。

我想创建第三个文件。我想保留第一个文件中的行,这些行的ID与第二个文件中的一个ID匹配,并且第一个文件中的END小于第二个文件中的START。我只想保留第一个符合条件的文件中的行。我不想保留第二个文件的START值。我也不想保留与ID不匹配且没有END<的行。开始。

FILE 1  
ID    END       
1     333            
2     555           
3     789           
4     234



File 2
ID     START
 1       432
 2       777  
 3       444


New FILE
ID    END
1     333
2     555

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

假设file3是你想要的最终版本:

file3 = merge(file1, file2, by = "ID")
file3 = file3[file3$END < file3$START, c("ID","END")]

答案 1 :(得分:0)

假设您对file1有df1而对file2有df2,并且您希望为上一次输出设置df3

rows <- df1$Id %in% df2$ID
df3 <- df1[rows]
df3 <- df1[df1$End > df2$End]