Продолжайте цикл, даже если в Excel нет вкладки - PullRequest
0 голосов
/ 08 апреля 2019

Я новичок в R и пытаюсь написать код, который будет перебирать все файлы в моей папке, а затем извлекать все данные, связанные с определенной вкладкой.Однако эта вкладка может присутствовать не во всех файлах, которые я храню в этой папке.Чтобы решить эту проблему, я использую функцию Try-Catch, но все еще сталкиваюсь с проблемами.

Что еще мне нужно сделать, так что я просто зацикливаю данные, если вкладка отсутствует, и не загружаю их?

Это то, что я пробовал:

for (i in 1:nrow(filesinfolderfull_list)){
  print(filesinfolder_list[i])
  i_ddolv_temp <- tryCatch (
    { read_excel(filesinfolderfull_list$datafiles[i], sheet="Display-OLV Reporting",col_names=TRUE,skip=4)},
error = function(e){print("skip")}
  )
  templateDDOLV_df<- bind_rows(templateDDOLV_df,i_ddolv_temp)  
}

1 Ответ

0 голосов
/ 08 апреля 2019

Я получаю из вашего объяснения, что некоторые из них не имеют листа "Display-OLV Reporting".Почему бы не посмотреть сначала с excel_sheets, а затем извлечь, если TRUE.Что-то вроде:

for (i in 1:nrow(filesinfolderfull_list)){
  print(filesinfolder_list[i])
  if ("Display-OLV Reporting"%in%excel_sheets(read_excel(filesinfolderfull_list$datafiles[i]){
      i_ddolv_temp <- read_excel(filesinfolderfull_list$datafiles[i], sheet="Display-OLV Reporting",col_names=TRUE,skip=4)
      templateDDOLV_df<- bind_rows(templateDDOLV_df,i_ddolv_temp) 
   } 
}

Вы можете использовать переменную, чтобы не читать каждый Excel дважды

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...