1

我正在使用带有 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 函数。

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

4

1 回答 1

2

pattern您可以在一个操作中将所有文件读入列表,如下所示(根据需要进行调整sheet以获取所需的文件/工作表):

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)
于 2015-05-15T15:38:11.333 回答