XLConnect - 带有循环对象的 readWorksheet

XLConnect - readWorksheet with looping object

我正在使用带有 XLConnect 包的 R Studio 3.1.2 版来加载、读取和写入多个 xlsx 文件。我可以通过复制和创建多个对象来做到这一点,但我正在尝试使用 1 个对象(同一文件夹中的所有文件)来做到这一点。请看例子 我可以这样做列出每个文件,但想使用循环来做到这一点

tstA <- loadWorkbook("\\FS01\DEPARTMENTFOLDERS$\tst\2015\Apr\DeptA.xlsx")
tstB <- loadWorkbook("\\FS01\DEPARTMENTFOLDERS$\tst\2015\Apr\DeptB.xlsx")

这是我尝试这样做的方式,但出现错误

dept <- c("DeptA","DeptB","DeptC")
for(dp in 1:length(dept)){
dept[dp] <- loadWorkbook("\\FS01\DEPARTMENTFOLDERS$\tst\2015\Apr\",dept[dp],".xlsx")}

之后我想使用 XLConnect 的 readWorksheet 函数。

为这个蹩脚的问题道歉,但我正在努力锻炼如何最好地做到这一点。 谢谢

您可以一次将所有文件读取到一个列表中,如下所示(根据需要调整patternsheet以获得您想要的files/sheets):

path = "\\FS01\DEPARTMENTFOLDERS$\tst\2015\Apr\"

df.list = lapply(list.files(path, pattern="xlsx$"), function(i) {
  readWorksheetFromFile(paste0(path, i), sheet="YourSheetName")
})

如果你想把所有的数据框合并成一个数据框,你可以这样做:

df = do.call(rbind, df.list)