openxlsx в R - getSheetNames файлов в цикле for - PullRequest
0 голосов
/ 03 февраля 2020

У меня 3 файла.

library(openxlsx)
file1 <- '/home/mycomp/file1.xlsx'
file2 <- '/home/mycomp/file2.xlsx'
file3 <- '/home/mycomp/file3.xlsx'

fil <- c(file1, file2,file3)

Каждый файл имеет несколько листов. Я пытаюсь распечатать sheeetNames из каждого файла, используя forl oop.

for (i in fil) {
  sheets <- openxlsx:::getSheetNames(fil[i])
  for (s in sheets) {
    print(s)
  }
}

Я получаю следующую ошибку:

Error in getSheetNames(fil[i]) : file does not exist.

Однако, когда я запускаю файл по отдельности, печатаются имена листов.

for (i in fil) {
  sheets <- openxlsx:::getSheetNames(file1)
  for (s in sheets) {
    print(s)
  }
}

В В этом случае имена листов печатаются 3 раза, поскольку fil содержит 3 файла. Почему мой forl oop печатает ошибку в предыдущем случае.

1 Ответ

0 голосов
/ 03 февраля 2020

Пожалуйста, используйте i, а не fil [i].

 for (i in fil) {
        sheets <- openxlsx:::getSheetNames(i)
        for (s in sheets) {
            print(s)
        }
    }
...