如何在R语言中为列表内的数据框赋予对应CSV文件名
问题修正方案
你的代码错误在于用names(df) <- name修改了数据框的列名,而非给列表中的数据框元素命名。这就导致数据框的列被强行替换成单个文件名,多余列只能填充NA。
修正后的代码如下:
# 获取Results文件夹下所有csv文件的完整路径 filenames <- list.files("Results", pattern="*.csv", full.names=TRUE) # 按模拟序号的数字顺序排序 filenames <- mixedsort(filenames) # 批量读取所有csv文件为数据框列表 ldf <- lapply(filenames, read.csv) # 提取每个文件的名称(去除路径和.csv扩展名) list_item_names <- tools::file_path_sans_ext(basename(filenames)) # 为列表中的每个数据框设置对应文件名作为名称 names(ldf) <- list_item_names
修正后,你可以通过ldf$Sim_Results_1或者ldf[["Sim_Results_1"]]直接访问对应序号的模拟结果数据框,无需再用索引[[1]]。
内容的提问来源于stack exchange,提问作者TRS6
相关产品推荐
相关产品推荐

