У меня есть список из 15 файлов, хранящихся в объекте FILELIST
. Задача состоит в том, чтобы прочитать все файлы с FILELIST
из определенного каталога и добавить один ниже другого.R: Обработка исключений с помощью try()
В приведенном ниже коде объект, называемый 'dataset', будет иметь окончательный файл. Проблема, с которой я столкнулся, заключается в том, что один или несколько файлов, присутствующих в FILELIST
, отсутствуют в каталоге, я получаю сообщение об ошибке, как показано ниже. Мне нужно, если в каталоге нет 1 или более из 15 файлов, код должен продолжать добавлять остальные файлы.
Я испробовал метод обработки исключений try
, но все еще получаю ниже ошибки, и код не обрабатывает остальную часть файлов.
Ошибка в файле (файл «RT»): не может открыть соединение Дополнительно: Предупреждение сообщение: В файле (файл «RT»): не может открыть файл «PREDICTION_2016_Q4_Wk13.csv»: Нет такого файла или каталог
Код:
for (file in FILELIST) {
try(
if (!exists("dataset")) {
dataset <- read.table(file, header=TRUE, sep=",")
}
if (exists("dataset")) {
temp_dataset <-read.table(file, header=TRUE, sep=",")
dataset<-rbind(dataset, temp_dataset)
rm(temp_dataset)
},
silent = T
)
}
Поскольку все решения ниже предполагают, вы должны потерять 'for' петлю здесь, и вам не понадобится' try' вызов , Кроме того, если ваши файлы содержат некоторые столбцы, которые будут интерпретироваться как факторы, ожидайте медленного выполнения, чем если бы вы установили 'stringsAsFactors'' FALSE'. –