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 函数。
为这个蹩脚的问题道歉,但我正在努力锻炼如何最好地做到这一点。
谢谢
您可以一次将所有文件读取到一个列表中,如下所示(根据需要调整pattern
和sheet
以获得您想要的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)
我正在使用带有 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 函数。
为这个蹩脚的问题道歉,但我正在努力锻炼如何最好地做到这一点。 谢谢
您可以一次将所有文件读取到一个列表中,如下所示(根据需要调整pattern
和sheet
以获得您想要的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)