【发布时间】:2019-05-29 15:09:25
【问题描述】:
我正在尝试学习通过循环将约 50 个数字向量(每个向量有约 20k 项)组合成数据帧的适当方法。
这些向量具有相同的名称,顺序相同,但值不同。它们看起来像:
#Vector 1
v1 = c(1, 20, 3, 2, 50)
names(v1) = c(geneA, geneB, geneC, geneD, geneE)
#Vector 2
v2 = c(25, 12, 43, 0, 50)
names(v2) = c(geneA, geneB, geneC, geneD, geneE)
#... total 50 vectors like these
我想在一个循环之后有一个决赛桌(随意更改行名):
geneA geneB geneC geneD geneE
values_v1 1 20 3 2 50
values_v2 25 12 43 0 50
...
values_v50...
值得注意的是,数字向量是来自特定库的输出,因此我对它们无能为力。我当前的循环逻辑是从 list() 开始,并一一追加数据帧。最后:
Reduce(function(...) merge(...), listDataFrames)
我不确定这是否是最好的方法。如果这样做是合理的,您能否还指出如何通过上述命令中的向量名称进行合并?非常感谢,新年快乐。
【问题讨论】:
-
更新:我最终采纳了@Ronak Shah 的建议,除了我使用了 do.call,而不是 Reduce。 do.call 将每个向量的名称保留为行名称。