我如何命名数据框架在R列表后的CSV文件,他们来自?



我有一个文件夹名为" results ";里面有CSV文件。它们的命名方案为"sim_results_x .csv",其中x为第n次模拟。我想把它们变成一个数据框架列表,这些数据框架以它们被读取的文件命名。例如,我希望Sim_Results_1.csv在数据名列表中被称为Sim_Results_1,而不是[[1]]。我尝试了下面的代码,但不是以文件命名数据框,而是以文件命名第一列,所有其他列都命名为"NA."我怎样才能解决这个问题?

#get list of names of all files in results folder
filenames <- list.files("Results", pattern="*.csv", full.names=TRUE)
#sort them in numeric order
filenames <- mixedsort(filenames)
#combine into list of dataframes
ldf <- lapply(filenames, function(x) {
name <- tools::file_path_sans_ext(basename(x))
df <- read.csv(x)
names(df) <- name
# Return dataframe
df
})

可以使用base RsetNames()函数。关键是您将名称应用于列表,而不是应用于列表中的每个项目。

ldf <- lapply(filenames, read.csv) |>
setNames(
tools::file_path_sans_ext(basename(filenames))
)

使用Map/read.csv,然后编辑列表名称,如最后一行所示。

library(tools)
ldf <- Map(read.csv, filenames)
names(ldf) <- file_path_sans_ext(basename(names(ldf))

相关内容

  • 没有找到相关文章

最新更新