如何在读取CSV文件列表时添加文件名作为标识符?
为读取的多份CSV数据添加文件名标识符
你可以用以下两种tidyverse风格的方法,给每份CSV对应的数据添加文件名作为区分标识:
方法一:用purrr::map_df()遍历处理
这种方式能灵活控制文件名的显示格式:
library(tidyverse) # 获取目标路径下的所有CSV完整路径 csv_filenames <- list.files(path = "你的文件路径", full.names = TRUE) # 逐个读取文件,添加文件名列后合并为单个数据框 df <- map_df(csv_filenames, ~ read_csv(.x) %>% # 提取纯文件名(如"One.csv"),若要去掉.csv后缀,改用tools::file_path_sans_ext(basename(.x)) mutate(filename = basename(.x)))
方法二:用read_csv()的id参数(更简洁)
read_csv原生支持id参数,自动添加文件标识列:
library(tidyverse) csv_filenames <- list.files(path = "你的文件路径", full.names = TRUE) # 读取时指定id参数,自动生成名为filename的列,默认存完整文件路径 df <- read_csv(csv_filenames, id = "filename") # 可选:把完整路径转为纯文件名 df <- df %>% mutate(filename = basename(filename))
内容的提问来源于stack exchange,提问作者SiH
相关产品推荐
相关产品推荐

