如何为R语言中批量导入的CSV列表数据框命名
给导入的CSV数据框列表添加文件名作为名称
方法1:导入后为列表元素命名
你可以通过names()函数,结合文件名处理工具,给已导入的df.list添加对应名称:
# 提取不带完整路径的文件名 short_names <- basename(filenames) # 去掉文件名的.csv后缀 short_names <- tools::file_path_sans_ext(short_names) # 为df.list的每个元素赋值名称 names(df.list) <- short_names
如果需要保留带完整路径的原始文件名,直接执行names(df.list) <- filenames即可。
方法2:导入时直接生成带名称的列表
可以一步完成导入和命名操作,避免后续额外处理:
基础R实现
filenames <- list.files(pattern='*.csv', full.names=TRUE) # 先给文件名向量添加简化后的名称(不带路径和后缀) names(filenames) <- tools::file_path_sans_ext(basename(filenames)) # 导入时自动继承名称到df.list df.list <- lapply(filenames, read.csv)
用purrr包简化(需先安装purrr)
library(purrr) filenames <- list.files(pattern='*.csv', full.names=TRUE) df.list <- filenames %>% set_names(tools::file_path_sans_ext(basename(.))) %>% map(read.csv)
完成后,你可以通过df.list[["目标文件名"]]直接访问对应的数据框。
内容的提问来源于stack exchange,提问作者C. Guff
相关产品推荐
相关产品推荐

