read.xls - read in variable-length list of sheets, with their names

前端 未结 2 705
情歌与酒
情歌与酒 2021-01-18 07:55

Given several .xls files with varying number of sheets, I am reading them into R usingread.xls from the gdata package. I

相关标签:
2条回答
  • 2021-01-18 08:36

    For such tasks I use library XLConnect. With its functions you can get the names of each sheet in a vector and then just determine the length of that vector.

    #Read your workbook 
    wb<-loadWorkbook("Your_workbook.xls")
    
    #Save each sheet's name as a vector
    lp<-getSheets(wb)
    
    #Now read each sheet as separate list element
    dat<-lapply(seq_along(lp),function(i) readWorksheet(wb,sheet=lp[i]))
    

    UPDATE

    As suggested by @Martin Studer XLConnect functions are already vectorized, so there is no need to use lapply(), instead just provide vector of sheet names or use function getSheets() inside readWorksheet().

    dat <- readWorksheet(wb, sheet = getSheets(wb))
    
    0 讨论(0)
  • 2021-01-18 08:47

    See the sheetCount and sheetNames functions (on same help page) in gdata. If xls <- "a.xls", say, then reading all sheets of a spreadsheet into a list, one sheet per component, is just this:

    sapply(sheetNames(xls), read.xls, xls = xls, simplify = FALSE)
    

    Note that the components will be named using the names of the sheets. Depending on the content it might make sense to remove simplify = FALSE.

    0 讨论(0)
自定义标题
段落格式
字体
字号
代码语言
提交回复
热议问题