如何在rbind中自动命名列?

时间:2015-08-04 14:29:32

标签: r rbind

我经常使用相同的变量来训练载体:

v1 = 1
v2 = 2
rbind(c(v1, v2), c(v1, v2))
     [,1] [,2]
[1,]    1    2
[2,]    1    2

我知道我可以明确地命名向量列,但是当你有很多变量时,这是相当繁琐和多余的:

rbind(c(v1 = v1, v2 = v2), c(v1= v1, v2 = v2))
     v1 v1
[1,]  1  2
[2,]  1  2

如何指示rbind()使用变量名来命名每一列?

2 个答案:

答案 0 :(得分:5)

您只需要将传递给rbind的第一个向量中的元素命名为:

v1 <- 1
v2 <- 2
rbind(c(v1=v1, v2=v2), c(v1, v2), c(4, 5))
#      v1 v2
# [1,]  1  2
# [2,]  1  2
# [3,]  4  5

我假设您提供的示例已经简化,并且您不打算多次重复同一行;如果是这样,除了多次输入行之外,还有更简单的方法(例如,使用replicaterep)。

答案 1 :(得分:2)

您可以结合使用rbindmget

v1 <- 1
v2 <- 2

rbind(mget(c("v1", "v2")), mget(c("v1", "v2")))

mget将在环境中搜索具有给定名称的变量。最重要的是,结果是一个名为list的对象。

但是,我认为更清晰的解决方案就是按照上面的建议制作data.frame

rbind(data.frame(v1, v2), data.frame(v1, v2))