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

如何在R语言中按指定列读取并合并文件夹中的多份CSV文件

解决R语言提取指定列并合并CSV文件的问题

嗨,我来帮你搞定这个需求!你的现有代码会读取所有列并合并,我们只需要在读取过程中加入列筛选的逻辑就行,这里有两种高效的实现方式:

方法一:读取时直接指定目标列(推荐,更节省内存)

这种方法在读取每个CSV文件时就只加载你需要的10列,对于大型CSV来说能显著减少内存占用,效率更高:

mypath <- "C:/Blrt/B0/Mac/Output/"
setwd(mypath)
filelist <- list.files(path = mypath, pattern = "*.csv", full.names = FALSE)

# 定义你需要提取的10列名称
target_cols <- c("Col1", "Col2", "Col3", "Col4", "Col5", "Col6", "Col7", "Col8", "Col9", "Col10")

# 遍历文件列表,读取并筛选列后合并
Almdat <- Reduce(rbind, lapply(filelist, function(file) {
  # 读取文件后直接提取目标列
  read.csv(file, header = TRUE, quote = "", sep = ",", row.names = NULL)[, target_cols]
}))

方法二:先读取所有列再筛选(适合需要校验数据的场景)

如果你需要先查看完整数据或者确认列名是否匹配,可以先读取全部列,再筛选目标列:

mypath <- "C:/Blrt/B0/Mac/Output/"
setwd(mypath)
filelist <- list.files(path = mypath, pattern = "*.csv", full.names = FALSE)

target_cols <- c("Col1", "Col2", "Col3", "Col4", "Col5", "Col6", "Col7", "Col8", "Col9", "Col10")

Almdat <- Reduce(rbind, lapply(filelist, function(file) {
  # 先读取完整数据框
  full_df <- read.csv(file, header = TRUE, quote = "", sep = ",", row.names = NULL)
  # 筛选目标列
  full_df[, target_cols]
}))

注意事项

  • 确保所有CSV文件的列名和target_cols中的名称完全一致(R语言对大小写敏感哦);
  • 如果担心列名不匹配,可以先读取单个文件查看列名:colnames(read.csv(filelist[1]))。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 10:42:44