Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何基于公共列合并多个数据帧_R - Fatal编程技术网

R 如何基于公共列合并多个数据帧

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

我有三个数据框,我想通过公共列名(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, 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