XLConnect - readWorksheet с объектом цикла

Я использую 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")}

После этого я хочу использовать функцию readWorksheet из XLConnect.

Извиняюсь за неубедительный вопрос, но я изо всех сил пытаюсь понять, как лучше всего это сделать. Спасибо


person New2Programming    schedule 15.05.2015    source источник


Ответы (1)


Вы можете прочитать все файлы в списке за одну операцию следующим образом (отрегулируйте 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)
person eipi10    schedule 15.05.2015
comment
Когда я пытаюсь использовать это, я получаю следующие ошибки: df.list = lapply (list.files (path), pattern = xlsx $), function (i) {Ошибка: неожиданно ',' в df.list = lapply (list. files (path), pattern = xlsx $), ›readWorksheetFromFile (paste0 (path, i), sheet = TST) Ошибка в paste0 (path, i): объект 'i' не найден›}) Ошибка: неожиданно '}' в } - person New2Programming; 15.05.2015
comment
Закрытые скобки после path удалены. Прости за это. Попробуй сейчас. - person eipi10; 15.05.2015