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

如何在读取目录下所有CSV文件时添加文件名列?

解决方案

你可以在读取每个CSV文件后,为其新增一列存储文件名,再进行合并。这里提供两种实现方式:

方式一:使用tidyverse工具(推荐)

利用dplyr::mutate直接添加列,代码更简洁:

library(readr)
library(dplyr)

# 仅读取目录下的CSV文件(可选但推荐)
nm <- list.files(pattern = "\\.csv$")

df <- do.call(rbind, lapply(nm, function(x) {
  read_delim(x, ';', col_names = TRUE) %>%
    mutate(source_file = x) # 新增列存储当前文件名
}))

方式二:Base R实现

如果不想依赖dplyr,用基础R语法也能完成:

library(readr)

nm <- list.files(pattern = "\\.csv$")

df <- do.call(rbind, lapply(nm, function(x) {
  temp_df <- read_delim(x, ';', col_names = TRUE)
  temp_df$source_file <- x # 新增列
  temp_df
}))

关键说明

  • list.files(pattern = "\\.csv$"):过滤出目录下所有CSV文件,避免读取无关文件(比如R脚本、文本文件等),如果你的目录里只有CSV文件,这一步可以省略。
  • 新增的source_file列会保留每个行对应的原始文件名,方便后续溯源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:25:27