使用具有通用名称的几列来对两个数据帧(相等行数)进行绑定通常会导致更改了公共名称的data.frame(例如NameA.1,NameB.1等)以避免任何问题 .
我注意到即使名称已经改变,也有数据替换 . 具体来说,生成的data.frame包含来自所有列中具有相同名称的第一个data.frame的数据,即使是那些应该具有来自第二个data.frame的数据的数据 .
这个很容易克服,因为可以在cbind之前更改名称,但它可能会在结果中隐藏错误 .
------编辑----我将尝试提供一个例子:
df1是:
row seqnames start end width strand Region Extra1
1 chr10 8111 8111 172 * 123 456
2 chr11 8112 8112 173 * 123b 456b
和df2是:
row seqnames start end width strand Whatever1 Whatever2
1 chr12 9111 9111 174 + ABC EFG
2 chr13 9112 9112 175 + ABCb EFGb
我执行cbind并得到:
row seqnames start end width strand Region Extra1 seqnames.1 start.1 end.1 width.1 strand.1 Whatever1 Whatever2
1 chr10 8111 8111 172 * 123 456 chr10 8111 8111 172 * ABC EFG
2 chr11 8112 8112 173 * 123b 456b chr11 8112 8112 173 * ABCb EFGb
第二部分中的值属于df1而不是df2 . 这仅发生在df1和df2中具有相同名称的列中 . 它们已被自动正确重命名,但它们的数据已从第一个df重复出现 .
问题:这是正常的行为吗?
我希望这有帮助
再次感谢你
1 回答
不确定您的问题是什么,但是您可以为每个合并对象的列指定自己的列前缀,并使用
cbind
的命名参数: