我有8个向量,它们的名称具有相同的模式:T.vec_1,T.vec_2,...,T.vec_8。它们都是相同的长度。 现在,我想创建一个由这8个向量组成的数据框。
当然有此选项,它不是很优雅,并且如果有更多的向量,就没有意义:
df <- data.frame(T.vec_1, T.vec_2, T.vec_3, T.vec_4, T.vec_5, T.vec_6, T.vec_7, T.vec_8)
这就是为什么我尝试通过两种方式使用循环来实现此目的的方法,但这两种方法均无法解决:
for (i in 1:8) {
df <- data.frame(get(paste("T.vec_", i, sep = "")))
}
和
for (i in 1:8) {
assign(df), data.frame(get(paste("T.vec_",i,sep="")))
}
什么是正确而明智的方法?
答案 0 :(得分:2)
您可以使用mget
在列表中获取多个向量,并按列将它们绑定:
dplyr::bind_cols(mget(paste0('T.vec_', 1:8)))
#bind_rows works too.
#dplyr::bind_rows(mget(paste0('T.vec_', 1:2)))
或者在基数R中:
do.call(cbind.data.frame, mget(paste0('T.vec_', 1:8)))