R TryCatchLog () для регистрации предупреждений и возврата «результата ошибки» в случае ошибки, в противном случае нормальный результат - PullRequest
0 голосов
/ 10 октября 2019

У меня довольно сложная функция, которая обучает загрузочную модель логистической регрессии и выполняет прогноз. На основе прогнозируемой вероятности функция выводит информационный кадр с результатами. Функция выполняется большое количество раз в цикле lapply. Функция иногда выдает предупреждения.

Я хотел бы сохранить все предупреждения в отдельном лог-файле. В случае ошибки я бы хотел, чтобы функция возвращала фрейм данных с NA и продолжала работать.

Каков наилучший способ сделать это?

Я попытался обернуть всю функцию в TryCatchLog (), но не могу заставить ее работать. Предупреждения замолкают, но R не выполнит части кода с предупреждением и ошибкой.

Скрестим пальцы за помощь! Спасибо!!!

Вот структура моего кода:

tryCatchLog(LogRegTrainPredict <- function() {
 #...Code...
  return(results)},

error = function(e){ 
results <- data.frame(result1 = NA, result2 = NA, result3 = NA)
},

warning = function(w){
  warn <<- conditionMessage(w)
  print(w)
},

finally= NULL,
write.error.dump.file  = getOption("tryCatchLog.write.error.dump.file", TRUE),
silent.warnings = getOption("tryCatchLog.silent.warnings",FALSE), 
silent.messages = getOption("tryCatchLog.silent.messages", FALSE)
)
...