XLConnect - readWorksheet与循环对象(XLConnect - readW

2019-10-23 03:19发布

我,使用R Studio版本3.1.2 XLConnect包加载,读取和写入多个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功能。

道歉跛脚的问题,但我很努力的锻炼如何最好地做到这一点。 谢谢

Answer 1:

你可以阅读所有的文件到列表中的一个操作如下(调整patternsheet为需要得到的文件你想/张):

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)


文章来源: XLConnect - readWorksheet with looping object