R语言中如何将向量存储的取值作为cbind函数的参数使用
你原来的写法失效是因为 get() 仅支持读取单个R对象,传入长度大于1的字符向量时只会返回第一个元素对应的数据框,自然和手动拼接的结果不一致。
基础R解决方法
你可以搭配 mget() 批量读取所有数据框,再通过 do.call() 将列表中的数据框批量传入cbind,无需额外安装依赖:
# 批量获取所有数据框组成列表,再批量传入cbind作为参数 res <- do.call(cbind, mget(my_data_frames))
运行上述代码得到的res和cbind(df1, df2, df3)的结果完全一致。
tidyverse生态可选方法
如果你使用tidyverse生态,也可以用purrr包的list_cbind实现,对列名冲突等边界场景的处理更友好:
library(purrr) res <- list_cbind(mget(my_data_frames))
注意:使用时请确保字符向量中存储的所有数据框名称在当前环境中存在,且所有数据框的行数一致,否则拼接会报错。
内容的提问来源于stack exchange,提问作者lysty
相关产品推荐
相关产品推荐

