繁体   English   中英

将多个 excel 文件中的所有工作表读入 R

[英]Reading all sheets in multiple excel files into R

我正在尝试读取一堆 excel 文件,以及这些文件中的所有工作表到 R 中。 然后我想将每个工作表保存为一个单独的数据框,数据框的名称与工作表的名称相同。 有些文件只有一张,而其他文件不止一张,所以我不知道如何指定所有的工作表而不是一个数字。 我努力了:

     library(XLConnect)   
     files.list <- list.files(recursive=T,pattern='*.xlsx')  #get files list from folder

     for (i in 1:length(files.list)){                                           
     wb <- loadWorkbook(files.list[i])           
     sheet <- getSheets(wb, sheet = )                      

     for (j in 1:length(sheet)){ 
         tmp<-read.xlsx(files.list[i], sheetIndex=j,
               sheetName=NULL,
               as.data.frame=TRUE, header=F)   
    if (i==1&j==1) dataset<-tmp else dataset<-rbind(dataset,tmp)   

      }
    }

我收到一个错误“找不到 function “loadWorkbook””。 在某一时刻,我解决了该问题并收到错误“找不到 function “getSheets””。 我在让这个 package 工作时遇到了一些问题,所以如果有人有不同的选择,我将不胜感激!

我很确定, loadWorkbook function 来自 package openxlsx 所以你应该使用:

library(openxlsx)

https://cran.r-project.org/web/packages/openxlsx/openxlsx.pdf

您可以尝试使用readxl ...

对于具有重复工作表名称的不同工作簿,我没有对此进行测试。

您的代码存在许多问题:

  1. list.files 模式包括一个。 这是一个保留字符,因此需要使用\\进行转义
  2. 正如@deschen 所指出的,excel 引用函数来自openxlsx package
library(readxl)

files.list <- list.files(recursive = T, pattern = '*\\.xlsx')  #get files list from folder

for (i in seq_along(files.list)){
  
  sheet_nm <- excel_sheets(files.list[i])

    for (j in seq_along(sheet_nm)){
  
      assign(x = sheet_nm[j], value = read_xlsx(path = files.list[i], sheet = sheet_nm[j]), envir = .GlobalEnv)
  }

}

代表 package (v2.0.1) 于 2022 年 1 月 31 日创建

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM