如何在R编程中读取多个excel表?

aka*_*ash 6 excel r

我有一个包含400张的excel文件.如何使用read.xls函数将此excel文件加载到R?请提供此示例代码.

Bra*_*sen 12

我只是假设你想要它作为一个data.frame()并且所有工作表都包含相同的数据.

library(xlsReadWrite) 
sheets <- c("Sheet 1","Sheet 2", "Sheet 3")

df <- data.frame()

for (x in 1:400) 
df <- rbind(df, read.xls("filename.xls", sheet=sheets[x]))
}
Run Code Online (Sandbox Code Playgroud)

如果每个工作表都是它自己唯一的data.frame(),您可能希望将它们放在一个列表中.否则,如果要将它们作为环境中的对象,则可以使用assign().

sheet_list <- list()
for(x in 1:400) {
sheet_list[[x]] <- read.xls("filename.xls", sheet=sheets[x])
} 
Run Code Online (Sandbox Code Playgroud)

或者,没有for循环:

sheet_list <- lapply(sheets, function(x) read.xls("filename.xls",sheets=x)) 
Run Code Online (Sandbox Code Playgroud)

  • 还要注意gdata包中的`sheetCount`函数,它给出了电子表格中的页数和`sheetNames`函数,它给出了它们的所有名称. (4认同)
  • 这个'rbind`的事情太糟糕了.400次呼叫`rbind`?对于`list`方式,我给+1,而`do.call(rbind,sheets)`将创建`data.frame`. (2认同)
  • 马雷克,我听到了 - 但有时我们并不关心1秒到10秒之间的差异. (2认同)