【发布时间】:2014-04-30 03:22:10
【问题描述】:
如何将命名向量添加到数据框中,向量的组件根据数据框的列名重新排序?
我需要一次构建一个数据框。命名向量是通过一些处理获得的,它为要插入的行提供值。问题是命名向量没有与数据框列的顺序相同的组件。这使得rbind 产生错误的结果。这是非常简化的示例代码:
df = data.frame(id=1:2, va=11:12, vb=21:22, vc=31:32)
v1 = c(id=4, va=14, vb=25, vc=NA)
df = rbind(df, v1)
到目前为止,这会产生正确的结果。现在下一个向量处理导致:
v2 = c(va=19, id=9, vc=34, vb=NA)
df = rbind(df, v2)
这会产生不正确的结果。正确的结果应该是
id va vb vc
1 1 11 21 31
2 2 12 22 32
3 4 14 25 NA
4 9 19 NA 34
【问题讨论】:
-
当你说“问题是命名向量没有与数据框列顺序相同的组件”,为什么你不能传入列的向量-names 并让它在函数内部进行重新排序?然后你可以做简单的
rbind
标签: r dataframe append row named