op <- options(warn=0) #although doesn't work for any value of warn
assign("last.warning", NULL, envir = baseenv())
thisDoesntWork<- function() {
warning("HEY, this is definitely a warning!")
cat(paste("number of warnings:",length(warnings())))
}
>thisDoesntWork()
Warning in thisDoesntWork() : HEY, this is definitely a warning!
number of warnings: 0
El número de advertencias debe ser 1 en lugar de 0 - Parece que warnings()
no devuelve nada si se llama dentro de una función. ¿Por qué? ¿Cómo se puede solucionar esto para verificar dentro de una función si se producen advertencias e imprimirlas?warnings() no funciona dentro de una función? ¿Cómo puede uno solucionar esto?
No quiero usar tryCatch
, porque luego pierdo el valor que devuelve la función (aún puede devolver un valor válido, incluso si generó una advertencia).
También es posible que desee devolver el número de advertencias como un atributo de la respuesta. 'attr (ans," number_of_warnings ") <- .number_of_warnings' –
¡Estupendo! También puedo tomar el mensaje de advertencia de esta manera ('w') –
De nada. Nada dice gracias como un voto positivo. :) –