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

R语言合并CSV文件时如何添加源文件名作为变量?

解决方案

在你现有的代码基础上,只需要在读取每个CSV文件后新增一列记录文件名即可,用dplyr::mutate就能实现。修改后的完整代码如下:

library(dplyr)
library(readr)

df <- list.files(path="./", pattern = ".csv", full.names = FALSE) %>%
  lapply(function(x) {
    # 读取指定列后,新增source_file列存储当前文件名
    read_csv2(x, col_select = c("variable1","variable2")) %>%
      mutate(source_file = x)
  }) %>% 
  bind_rows()

如果想用更简洁的写法,可以借助purrr包的imap_df函数(它会同时传递文件路径和文件名):

library(purrr)
library(dplyr)
library(readr)

df <- list.files(path="./", pattern = ".csv", full.names = FALSE) %>%
  imap_df(function(file_path, file_name) {
    read_csv2(file_path, col_select = c("variable1","variable2")) %>%
      mutate(source_file = file_name)
  })

这两种写法都能在最终合并的数据框中,新增一列记录每条数据对应的原始CSV文件名。

内容的提问来源于stack exchange,提问作者Maciej B.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:35:41