如何从多个向量创建数据帧?

时间:2020-09-11 11:49:44

标签: r dataframe

我有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="")))
}

什么是正确而明智的方法?

1 个答案:

答案 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)))