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

如何在R中使用循环批量导入命名含年份的.cvs格式数据文件

问题诊断
  • 字符串未正确拼接变量:R不会自动替换双引号内的i为循环变量的实际值,你写的"Natalidad [i]_p.csv"会被直接识别为固定字符串,不会对应到Natalidad 1996_p.csv这类实际文件。
  • 存储对象未提前适配:如果nacimientos没有提前初始化为列表,直接用[i]赋值无法存储read.csv返回的DataFrame结构,会触发类型不匹配错误。
  • 文件名占位符和实际命名不匹配:你需要先确认本地文件的实际命名规则,比如是Natalidad1996_p.csv、Natalidad[1996]_p.csv还是Natalidad [1996]_p.csv,拼接的时候要和实际格式完全一致。
可行实现方案

以最常见的文件名格式Natalidad1996_p.csv(无括号,年份直接跟在Natalidad后)为例,参考代码如下:

# 1. 提前初始化列表,用于存储每年的出生数据
nacimientos <- list()
# 2. 循环读取文件
for (i in 1996:2020) {
  # 拼接生成对应年份的文件名
  file_name <- paste0("Natalidad", i, "_p.csv")
  # 读取文件存入列表,用as.character(i)做列表名,方便后续按年份取数
  nacimientos[[as.character(i)]] <- read.csv(file_name, header = TRUE, sep = ";")
}

如果你的实际文件名中年份是被[]包裹的,比如Natalidad[1996]_p.csv,只需要修改拼接文件名的行即可:

file_name <- paste0("Natalidad[", i, "]_p.csv")

如果文件名里Natalidad和年份之间有空格,比如Natalidad [1996]_p.csv,调整拼接规则即可:

file_name <- paste0("Natalidad [", i, "]_p.csv")

小提示:运行前可以在循环内先打印file_name确认和实际文件名是否一致,提前排查拼写问题。

内容的提问来源于stack exchange,提问作者Agustín Correa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 04:36:02