如何自动命名 rbind 中的列?
How can I automatically name columns in 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() 使用变量名来命名每一列?
您只需命名传递给 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
我假设您提供的示例已经过简化,并且您不打算多次重复同一行;如果是这样,有比多次键入该行更简单的方法(例如使用 replicate
或 rep
)。
您可以使用 rbind
和 mget
的组合:
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))
我经常使用相同的变量绑定向量:
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() 使用变量名来命名每一列?
您只需命名传递给 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
我假设您提供的示例已经过简化,并且您不打算多次重复同一行;如果是这样,有比多次键入该行更简单的方法(例如使用 replicate
或 rep
)。
您可以使用 rbind
和 mget
的组合:
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))