首页 > 解决方案 > 读取多个文件,但跟踪哪个文件是 R 中的哪个数据框

问题描述

假设我有这些文件:

N1.xlsx
N2.xlsx
N3.xlsx
N4.xlsx

我希望它们在一个列表中,但每个数据帧必须根据它读取的文件命名,比如

mylist = 
N1
N2
N3
N4

我在用着:

fnames =  mixedsort(sort(list.files("filepath", pattern = '*.xlsx', full.names = F)))

mylist <- lapply(fnames, function(x) {
 read_xlsx(paste0(x),  col_names = TRUE)
})

但是这段代码创建了一个没有标识的列表

mylist = 
[[1]]
[[2]]
[[3]]
[[4]]

将每个文件的名称保留在每个数据框中很重要,这样我以后可以正确导出它们!

标签: rlapply

解决方案


有一个名为libr的软件包可以完全满足您的要求。您可以在一行代码中完成。语法是这样的:

libname(mylist, "<path to files>", "xlsx")

上面的代码会将数据放入变量mylist中,每个数据集都根据文件名命名。


推荐阅读