You need to enable JavaScript to run this app. 如何用R编写循环从多个CSV文件提取指定行列并保留文件名汇总导出
优惠活动
大模型
产品
解决方案
定价
更多

如何用R编写循环从多个CSV文件提取指定行列并保留文件名汇总导出

解决方案

完全可以实现,仅需单个批量处理逻辑即可完成需求,同时支持保留原文件名作为数据来源标记。

实现逻辑

  • 第一步:遍历目标文件夹,获取所有CSV文件的完整路径
  • 第二步:逐个读取CSV文件,筛选指定的3个列、提取目标2行数据
  • 第三步:新增source_file字段存储当前文件的名称,标记数据来源
  • 第四步:将所有文件的提取结果按行合并,统一导出为汇总CSV

可直接复用的脚本

Tidyverse 版本(代码更简洁,处理效率更高)

需提前安装tidyverse包:运行install.packages("tidyverse")即可

# 加载依赖包
library(tidyverse)

# --------------------------需修改的参数--------------------------
# CSV文件所在文件夹的完整路径,Windows系统请将路径斜杠改为/或者双反斜杠
csv_dir <- "替换为你的CSV文件夹路径"
# 需要提取的3个列名,需和原文件列名完全一致
target_cols <- c("列名1", "列名2", "列名3")
# 需要提取的行号,如提取前2行则写c(1,2)
target_rows <- c(2, 5)
# ----------------------------------------------------------------

# 获取所有CSV文件路径
csv_paths <- list.files(csv_dir, pattern = "\\.csv$", full.names = TRUE)

# 批量处理所有文件并自动合并
final_result <- map_dfr(csv_paths, function(path) {
  # 读取文件时仅读取指定列,提升处理速度
  df <- read_csv(path, col_select = all_of(target_cols), show_col_types = FALSE)
  # 提取指定行
  df_extract <- df[target_rows, ]
  # 新增来源列,存储原文件名
  df_extract$source_file <- basename(path)
  return(df_extract)
})

# 导出汇总结果
write_csv(final_result, "汇总结果.csv")

基础R版本(无需安装额外依赖包)

# --------------------------需修改的参数--------------------------
csv_dir <- "替换为你的CSV文件夹路径"
target_cols <- c("列名1", "列名2", "列名3")
target_rows <- c(2, 5)
# ----------------------------------------------------------------

csv_paths <- list.files(csv_dir, pattern = "\\.csv$", full.names = TRUE)
result_list <- list()

# 循环处理每个文件
for (i in seq_along(csv_paths)) {
  df <- read.csv(csv_paths[i], stringsAsFactors = FALSE)
  # 筛选指定列和行
  df_extract <- df[target_rows, target_cols]
  # 新增来源列
  df_extract$source_file <- basename(csv_paths[i])
  result_list[[i]] <- df_extract
}

# 合并所有结果
final_result <- do.call(rbind, result_list)

# 导出汇总结果,取消行号输出
write.csv(final_result, "汇总结果.csv", row.names = FALSE)

注意事项

  • 列名需和原CSV文件内的列名完全一致,包括大小写、空格、特殊符号,匹配错误会导致运行中断
  • 如果需要提取满足筛选条件的2行(非固定行号),将df[target_rows, ]替换为对应条件筛选逻辑即可
  • 若部分文件存在缺少指定列的情况,可在读取逻辑中增加判断分支,跳过异常文件或补入空值,避免整体运行失败
  • 文件夹路径尽量避免使用中文、特殊符号,防止部分系统环境下读取文件失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 20:24:03