¿Alguien tiene ejemplos / tutoriales de manejo de excepciones en R? La documentación oficial es muy concisa.
r
exception-handling
boquiabierto
fuente
fuente

Respuestas:
Además de la respuesta de Shane que le indica otras discusiones de StackOverflow, puede probar una función de búsqueda de código. Esta respuesta original apuntaba a la búsqueda de código de Google desde entonces ha sido descontinuada, pero puede intentar
Solo para que conste, también existe,
tryperotryCatchpuede ser preferible. Probé un conteo rápido en Google Code Search, pero el intento obtiene demasiados falsos positivos para el verbo en sí, pero parece quetryCatchse usa más ampliamente.fuente
Básicamente quieres usar la
tryCatch()función. Consulte la ayuda ("tryCatch") para obtener más detalles.Aquí hay un ejemplo trivial (tenga en cuenta que puede hacer lo que quiera con un error):
Eche un vistazo a estas preguntas relacionadas:
fuente
Este resultado de una búsqueda relacionada en Google me ayudó: http://biocodenv.com/wordpress/?p=15 .
fuente
La función
trycatch()es bastante sencilla y hay muchos buenos tutoriales sobre eso. Se puede encontrar una excelente explicación del manejo de errores en R en el libro Advanced-R de Hadley Wickham , y lo que sigue es una introducción muy básicawithCallingHandlers()ywithRestarts()en la menor cantidad de palabras posible:Digamos que un programador de bajo nivel escribe una función para calcular el valor absoluto. No está seguro de cómo calcularlo, pero sabe cómo construir un error y transmite diligentemente su ingenuidad:
Un programador de nivel medio también escribe una función para calcular el valor absoluto, haciendo uso de la
low_level_ABSfunción lamentablemente incompleta . Sabe que el código de bajo nivel arroja unnegative_valueerror cuando el valor dexes negativo y sugiere una solución al problema, al establecer un códigorestartque permite a los usuarios demid_level_ABScontrolar la forma en que semid_level_ABSrecupera (o no) de unnegative_valueerror.Por último, un programador de alto nivel usa la
mid_level_ABSfunción para calcular el valor absoluto y establece un controlador de condición que le dice almid_level_ABSque se recupere de unnegative_valueerror usando el controlador de reinicio.El punto de todo esto es que al usar
withRestarts()ywithCallingHandlers(), la funciónhigh_level_ABSfue capaz de decirmid_level_ABScómo recuperarse de los errores generados porlow_level_ABSerror sin detener la ejecución demid_level_ABS, que es algo que no se puede hacer contryCatch():En la práctica,
low_level_ABSrepresenta una función quemid_level_ABSllama mucho (quizás incluso millones de veces), por lo que el método correcto de manejo de errores puede variar según la situación, y la elección de cómo manejar errores específicos se deja a funciones de nivel superior (high_level_ABS).fuente
La función de reinicio es muy importante en R heredado de Lisp. Es útil si desea llamar a alguna función en el cuerpo del bucle y solo desea que el programa continúe si la llamada a la función colapsa. Prueba este código:
fuente