You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何用for循环创建名称随迭代变化的数据框

你遇到的报错是因为R不支持直接通过data_[i]_2021这种写法动态拼接变量名,系统会把data_识别为一个已存在的对象尝试调用它的第i个元素,自然就会抛出object 'data_' not found的错误。

要实现你要的生成独立月份数据框的需求,用assign()函数就可以完成,修改后的循环代码如下:

months <- c("January", "February", "March", "April", "May", "June", "July", "August", "September", "October")

for (m in months) {
  # 动态生成变量名
  var_name <- paste0("data_", m, "_2021")
  # 动态生成对应文件路径
  file_path <- paste0("Data - ", m, " 2021.xlsx")
  # 将读取到的表格赋值给对应变量名,写入当前环境
  assign(var_name, read.xlsx(file_path))
}

运行上述代码后,你需要的data_January_2021到data_October_2021这10个数据框就会直接生成在环境中,可以正常调用。

如果后续需要对这批数据做批量清洗、计算等操作,更推荐把所有数据存在列表里,避免环境中散落太多独立变量,后续处理效率更高,写法参考:

months <- c("January", "February", "March", "April", "May", "June", "July", "August", "September", "October")
# 初始化存储列表
data_2021 <- list()

for (m in months) {
  file_path <- paste0("Data - ", m, " 2021.xlsx")
  # 用月份作为列表名存储对应表格
  data_2021[[m]] <- read.xlsx(file_path)
}

# 调用示例:读取1月数据
# head(data_2021$January)

内容的提问来源于stack exchange,提问作者RLLin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 13:36:07