R 如何基于公共列合并多个数据帧
我有三个数据框,我想通过公共列名(Gene)合并所有三个数据集R 如何基于公共列合并多个数据帧,r,R,我有三个数据框,我想通过公共列名(Gene)合并所有三个数据集 dt1您可以使用merge功能两次 merge(merge(dt1, dt2, by = "Gene"), dt3, by = "Gene")[1:3] # Gene chr.x log.x #1 Sall3 5 -1.5 #2 TRIM5 5 -3.4 正如@Pierre所提到的,对于嵌套的多个数据帧,merge不是一个好的选择。我们可以将Reduce与merge一起使用: Reduce(merge, l
dt1您可以使用merge
功能两次
merge(merge(dt1, dt2, by = "Gene"), dt3, by = "Gene")[1:3]
# Gene chr.x log.x
#1 Sall3 5 -1.5
#2 TRIM5 5 -3.4
正如@Pierre所提到的,对于嵌套的多个数据帧,merge
不是一个好的选择。我们可以将Reduce
与merge
一起使用:
Reduce(merge, list(dt1,dt2,dt3))
# Gene chr log
#1 Sall3 5 -1.5
#2 TRIM5 5 -3.4
不要在全局环境中保存多个数据集。将它们全部放入一个列表中(请参见?mget
),并在dupe中使用解决方案。实际上,我认为OP要求的是类似交叉点的操作,而不是合并
。
merge(merge(dt1, dt2, by = "Gene"), dt3, by = "Gene")[1:3]
# Gene chr.x log.x
#1 Sall3 5 -1.5
#2 TRIM5 5 -3.4
Reduce(merge, list(dt1,dt2,dt3))
# Gene chr log
#1 Sall3 5 -1.5
#2 TRIM5 5 -3.4