R语言:从文件夹导入多CSV生成DataFrame后添加文件来源列
给合并后的数据集添加源文件名列的解决方案
方法一:修改Base R代码适配需求
你可以在读取每个CSV文件时直接添加一列存储对应的源文件名,修改后的代码如下:
# 只匹配CSV文件,避免读取无关文件 files <- list.files(pattern = "\\.csv$") csv <- lapply(files, function(file) { # 读取单个CSV df <- read.csv(file) # 添加源文件名列 df$source_file <- file return(df) }) # 合并所有数据框 result <- do.call(rbind, csv)
这样处理后,result里的每条数据都会带上对应的源文件名,即便后续CSV文件数量增加,这段代码也能直接复用。
方法二:使用tidyverse工具更简洁实现
如果习惯用tidyverse生态的工具,代码会更简洁直观:
library(tidyverse) files <- list.files(pattern = "\\.csv$") # 读取并合并,同时添加源文件名列 result <- map_dfr(files, ~read.csv(.x) %>% mutate(source_file = .x))
map_dfr会自动将多个数据框按行合并,mutate一步完成源文件名列的添加,适合处理大量CSV文件的场景。
内容的提问来源于stack exchange,提问作者KMissani
相关产品推荐
相关产品推荐

