r - 如何从多个向量创建数据框?
问题描述
我有 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="")))
}
什么是正确和聪明的方法?
解决方案
您可以使用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)))
推荐阅读
- javascript - 无法使用 Extendscript 在 Illustrator 中以编程方式创建剪贴蒙版
- c - 为什么这些线程的执行顺序与代码不同?
- python - PyCharm 不会运行 Discord 模块,尽管它已经安装
- vue.js - [Vue 警告]:属性或方法“$v”未在实例上定义,但在渲染期间被引用
- java - Spring Cloud 回退到不同的主机(不是同一项目中的任何其他控制器)
- r - 在 R 中使用自定义数字创建循环
- python - 在合并的 csv 文件中添加附加列
- encoding - 批量包装 html 文件并保存为 utf-8
- c++ - 组合数组元素以分配给 C++ 中的变量
- hibernate - Spring Boot:如何初始化运行时数据源?