我正在尝试合并R中的两个表,如下所示:
TABLE_1:
id 1_query 1_hit
1 aaa aaa
1 aaa aab
2 ccc ccc
3 ddd eee
表2:
id 2_query 2_hit
1 aaa aaa
1 aaa abb
2 ccc ccc
2 cdc cdc
不幸的是,ID并不是唯一的,因为每个ID我在不同的表中都有不同的“查询”和“命中”,但是我需要ID,而且我想合并表格。
所需的输出应如下所示:
合并:
id 1_query 1_hit 2_query 2_hit
1 aaa aaa aaa aaa
1 aaa aab NA NA
1 NA NA aaa abb
2 ccc ccc ccc ccc
2 NA NA cdc cdc
3 ddd eee NA NA
到目前为止我尝试的是merge(table1, table2, all=TRUE)
但是输出表如下:
id X1_query X1_hit X2_query X2_hit
1 aaa aaa aaa aaa
1 aaa aaa aaa abb
1 aaa aab aaa aaa
1 aaa aab aaa abb
2 ccc ccc ccc ccc
2 ccc ccc cdc cdc
3 ddd eee <NA> <NA>
如果这是微不足道的话,我很抱歉。 谢谢。
答案 0 :(得分:0)
如果dat1
和dat2
是两个数据集,请尝试
dat1$Newcol <-as.character(interaction(dat1[,2:3]))
dat2$Newcol <- as.character(interaction(dat2[,2:3]))
merge(dat1, dat2, by=c("id", "Newcol"), all=TRUE)[,-2]
# id X1_query X1_hit X2_query X2_hit
#1 1 aaa aaa aaa aaa
#2 1 aaa aab <NA> <NA>
#3 1 <NA> <NA> aaa abb
#4 2 ccc ccc ccc ccc
#5 2 <NA> <NA> cdc cdc
#6 3 ddd eee <NA> <NA>