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

如何用R循环处理27个国家CSV文件:读取、选列、筛选并导出

批量处理多国家CSV文件的R代码实现

完整可运行代码

# 1. 设置CSV文件所在的文件夹路径(替换成你的实际路径)
data_folder <- "C:/Users/.../你的CSV文件所在文件夹/"

# 2. 获取文件夹中所有CSV文件的完整路径
csv_files <- list.files(path = data_folder, pattern = "\\.csv$", full.names = TRUE)

# 3. 定义需要保留的列(替换成你实际需要的列名)
target_columns <- c("Colum1", "Colum2", "YEAR")  # 必须包含YEAR列用于筛选

# 4. 循环处理每个CSV文件
for (file in csv_files) {
  # 读取文件
  df <- read.csv(file, stringsAsFactors = FALSE)
  
  # 选择目标列(纠正你原代码里的变量名笔误)
  df_selected <- df[target_columns]
  
  # 筛选2023年的数据
  df_filtered <- df_selected[df_selected$YEAR == "2023", ]
  
  # 生成唯一输出文件名:原文件名后追加"_2023",避免覆盖原文件
  output_filename <- paste0(tools::file_path_sans_ext(basename(file)), "_2023.csv")
  output_path <- file.path(data_folder, output_filename)
  
  # 导出处理后的文件
  write.csv(df_filtered, file = output_path, row.names = FALSE)
  
  # 可选:打印处理进度,方便跟踪
  cat("已处理:", basename(file), "→ 输出为:", output_filename, "\n")
}

关键细节说明

  • 文件列表获取:list.files的pattern = "\\.csv$"确保只抓取CSV格式文件,full.names = TRUE返回完整路径,避免因工作目录不一致导致的读取错误。
  • 变量名修正:你原代码里的dfColumFilter <- dfSemCol[...]存在笔误,dfSemCol应为dfColum(对应代码里的df_selected),已在代码中修正。
  • 输出文件命名:用tools::file_path_sans_ext去掉原文件后缀,再追加_2023.csv,保证每个输出文件唯一且直观对应原文件。
  • 数据类型适配:如果你的YEAR列是数值类型而非字符串,把代码里的"2023"改成2023即可。

内容的提问来源于stack exchange,提问作者Yuri Schäffer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 06:41:30