首页 > 解决方案 > 如何从多个向量创建数据框?

问题描述

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

什么是正确和聪明的方法?

标签: rdataframe

解决方案


您可以使用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)))

推荐阅读