【问题标题】:How to read multiple excel sheets in R programming? [closed]如何在 R 编程中读取多个 Excel 表? [关闭]
【发布时间】:2011-10-17 05:15:10
【问题描述】:

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

【问题讨论】:

  • 您好,欢迎来到 Stack Overflow。请参考How to Askfaq 页面了解如何编写好问题,请不要发布重复的问题,而是应该编辑问题以提供更多信息。然而,这里的这个问题由于质量低劣而处于被关闭为“不是一个真正的问题”或“没有建设性”的风险区域。您应该尝试提供更多有关您尝试过的内容的信息,寻求指点,并去掉结尾处基本上读作“嘿,有人可以做我的工作吗?kthxbaizomglol!”的文本。对大多数人来说。
  • 正如 Lasse 所说:请向我们展示您的尝试。这不是“免费聘请编码员”
  • 正如 Biostar 所说:将您的问题多次交叉发布到不同的站点并希望您在某个地方得到答案是相当粗鲁的。 (见biostar.stackexchange.com/questions/10771/…biostar.stackexchange.com/questions/10773/…)。你在这里不是在帮自己一个忙……

标签: excel r


【解决方案1】:

我只是假设你想要它作为一个 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]))
}

如果每张纸都是独一无二的data.frame(),您可能希望将它们放在list 中。否则,如果您希望它们作为环境中的对象,您可以使用 assign()

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

或者,没有for 循环:

sheet_list <- lapply(sheets, function(x) read.xls("filename.xls",sheets=x)) 

【讨论】:

  • 还要注意 gdata 包中的 sheetCount 函数,它给出了电子表格中工作表的数量,而 sheetNames 函数给出了它们的所有名称。
  • rbind 这件事太糟糕了。 400 次呼叫rbind?对于list 方式,我给+1,do.call(rbind, sheets) 将创建data.frame
  • Marek,我听到了 - 但有时我们并不关心 1 秒和 10 秒之间的差异。
  • 上面列表答案中的 i 来自哪里?不适合我,因为找不到我
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-14
  • 2014-05-06
  • 1970-01-01
  • 1970-01-01
  • 2014-04-19
  • 1970-01-01
相关资源
最近更新 更多