Я хотел бы использовать функцию для принятого ответа на этот вопрос:
Как сохранить предупреждения и ошибки в качестве вывода из функции?
factory <- function(fun)
function(...) {
warn <- err <- NULL
res <- withCallingHandlers(
tryCatch(fun(...), error=function(e) {
err <<- conditionMessage(e)
NULL
}), warning=function(w) {
warn <<- append(warn, conditionMessage(w))
invokeRestart("muffleWarning")
})
list(res, warn=warn, err=err)
}
для использования со следующей функцией:
rbindlistfun <- function(df1, df2) {
x <- rbindlist(list(df1, df2), fill=TRUE, use.names=TRUE)
return (x)
}
Ответ на OP дает следующий пример:
test <- function(i)
switch(i, "1"=stop("oops"), "2"={ warning("hmm"); i }, i)
res <- lapply(1:3, factory(test))
Но я не совсем понимаю, как это относится к моей функции.Как использовать фабричную функцию с моим примером?