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

如何用R批量处理文件夹CSV文件并将单文件转为合并文件的一行

批量处理CSV并合并结果实现方案

首先加载依赖包,你原有逻辑用了dplyr的函数,所以直接用tidyverse生态的工具实现批量处理最方便:

# 加载所需包
library(tidyverse)

# 1. 获取目标文件夹下所有csv文件的路径,替换为你实际的文件夹路径
csv_paths <- list.files(path = "./你的csv存放文件夹", 
                        pattern = "\\.csv$", 
                        full.names = TRUE)

# 2. 封装单文件处理逻辑,和你原有逻辑完全对齐
process_single_csv <- function(file_path) {
  # 读取单个csv文件
  data <- read_csv(file_path, show_col_types = FALSE)
  
  # 你原有的数据处理步骤
  data2 <- select(data, time_elapsed, button_pressed, responses, accuracy)
  data3 <- mutate(data2, time = tail(time_elapsed, 1))
  transformed_data <- select(data3, -time_elapsed)
  new_data <- c(
    transformed_data$button_pressed[2], 
    transformed_data$responses[3:6], 
    transformed_data$button_pressed[7], 
    transformed_data$time[1]
  )
  
  # 转成单行数据框返回,同时新增列记录原始文件名方便核对,不需要可以删掉
  res <- t(new_data) |> as.data.frame()
  res$source_file <- basename(file_path)
  return(res)
}

# 3. 批量处理所有文件,自动按行合并为一个数据框
all_result <- map_dfr(csv_paths, process_single_csv)

# 4. 输出合并后的最终文件
write.csv(all_result, "merged_result.csv", row.names = FALSE)

注意事项

  • 请将代码中的./你的csv存放文件夹替换为你电脑上实际存储csv文件的文件夹路径
  • 你原有代码中取transformed_data$button_pressed[7]的逻辑,在你提供的6行示例数据中会返回空值(NA),请自行核对索引是否符合你的实际数据规则,如果是笔误调整对应索引即可
  • 如果你不需要保留原始文件名对应的列,删掉res$source_file <- basename(file_path)这一行即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:15:01