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

R如何迭代S3上的CSV文件并按文件名分类合并为3个dataframe

R语言S3批量读取CSV并按文件名分类合并实现方案

首先确保你已安装所需依赖包,没有安装的话先执行安装:

install.packages(c("aws.s3", "purrr", "dplyr"))

完整实现代码

# 加载依赖
library(aws.s3)
library(purrr)
library(dplyr)

# 替换为你存储文件名的原始dataframe名,这里默认你的文件名表叫file_df
# 1. 生成包含-callers-的合并数据表
callers_df <- file_df$Key %>%
  # 筛选符合规则的文件名
  .[grepl("-callers-", .)] %>%
  # 批量读取后按行合并
  map_dfr(~ s3read_using(read.csv, object = paste0("s3://abc-testtalk/", .x)))

# 2. 生成包含-results的合并数据表(排除script_results避免重复匹配)
results_df <- file_df$Key %>%
  .[grepl("-results", .) & !grepl("-script_results-", .)] %>%
  map_dfr(~ s3read_using(read.csv, object = paste0("s3://abc-testtalk/", .x)))

# 3. 生成包含-script_results-的合并数据表
script_results_df <- file_df$Key %>%
  .[grepl("-script_results-", .)] %>%
  map_dfr(~ s3read_using(read.csv, object = paste0("s3://abc-testtalk/", .x)))

注意说明

  • 若你存储文件名的dataframe不叫file_df,请将代码中对应位置替换为你实际的变量名
  • map_dfr会自动对齐不同文件的列名,列不一致的位置会自动填充NA
  • 若CSV文件有特殊读取要求(如自定义分隔符、跳过首行、指定编码等),直接在read.csv中加对应参数即可,例如read.csv(sep = ";", skip = 1, fileEncoding = "UTF-8")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:39:03