我有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)))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句