如何在R中导入多个包含多个工作表的Excel文件

17 浏览
0 Comments

如何在R中导入多个包含多个工作表的Excel文件

我有60个Excel文件,每个文件有8个工作表。每个文件的工作表都相同,但每个文件的列数不同。

我遇到了一些有助于导入单个具有多个工作表的Excel文件的帖子。但我不想为60个文件重复这样做。有没有办法一次导入所有60个文件的所有工作表?

我遇到了这篇文章

https://it.unt.edu/sites/default/files/importmultipleexcel_l_jds_aug2013.pdf

但他们在考虑相同的列并合并所有内容,而我不想这样做。我只想导入。

0
0 Comments

在R中导入多个包含多个工作表的Excel文件的问题可能出现的原因是想要同时处理多个Excel文件,并且每个Excel文件中包含多个工作表的数据。解决这个问题的方法是使用readxl包中的函数read_excel_allsheets来读取多个工作表的数据,并将其保存为一个列表。

下面是解决该问题的代码:

read_excel_allsheets <- function(filename) { 
  sheets <- readxl::excel_sheets(filename) 
  x <- lapply(sheets, function(X) readxl::read_excel(filename, sheet = X)) 
  names(x) <- sheets 
  x 
} 
files <- list.files(path = "/directory/in/question/", 
                     pattern = "*.xlsx",
                     full.names = TRUE)
out <- lapply(files, read_excel_allsheets)
names(out) <- basename(files)

以上代码定义了一个名为read_excel_allsheets的函数,该函数接受一个文件名作为输入,并使用readxl包中的excel_sheets函数读取该文件中的所有工作表名称。然后,使用lapply函数遍历每个工作表,并使用readxl包中的read_excel函数读取每个工作表的数据。最后,将每个工作表的数据保存在一个列表中,并为列表中的每个元素命名为对应的工作表名称。

接下来,使用list.files函数获取指定目录中所有的xlsx文件,并将文件的全路径保存在一个列表中。然后,使用lapply函数遍历每个文件,并使用read_excel_allsheets函数读取每个文件的工作表数据。最后,将每个文件的工作表数据保存在一个列表中,并为列表中的每个元素命名为对应的文件名。

通过以上代码,我们可以在R中导入多个包含多个工作表的Excel文件,并将每个工作表的数据保存在一个列表中,方便后续的数据处理和分析。

0