¿Cómo generar tus propios mensajes de error en r

La generación de sus propios mensajes Puede sonar extraño, pero en realidad se puede prevenir errores en R mediante la generación de sus propios errores. Recuerda el error lógico en el logitpercent ()

función? Hubiera sido más fácil de detectar si el logit () la función devuelve un error diciendo que usted pasó un número mayor que 1.

Adición de error sensible (o advertencia) mensajes a una función puede ayudar a la depuración de las futuras funciones donde llamar a esa función específica de nuevo. Es sobre todo ayuda en la búsqueda de errores semánticos o lógicos que sean de otro modo difícil de encontrar.

Cómo crear mensajes de error en R

Se puede decir R para lanzar un error al insertar el Deténgase() funcionar en cualquier parte del cuerpo de la función, como en el siguiente ejemplo:

logit lt; - función (x) x> 1)) de parada ('x no entre 0 y 1') log (x / (1 - x))

Con el si () declaración, se prueba si cualquier valor en X se encuentra entre 0 y 1. Utilizando el alguna() función de todo el estado permite que su código para trabajar con vectores completos a la vez, en lugar de con los valores individuales. Porque el log () obras de función vectorizado así, toda la función está ahora vectorizados.

Si cambia el cuerpo de la logit () funciona de esta manera y tratar de calcular el logit de 50% y el 150% (o 0,5 y 1,5), R lanza un error como el siguiente:

> Logitpercent (c ('50% ',' 150% ')) Error en logit (as.numeric (x) / 100): No x entre 0 y 1

Como el nombre implica, la ejecución del código en cualquier momento se detiene la Deténgase() función se lleva a cabo efectivamente fuera por lo tanto, no devuelve un resultado.

Cómo crear mensajes de advertencia en R

También puede hacer la función de generar una advertencia en lugar de un error. De esa manera usted obtendrá la misma información, pero la función completa se lleva a cabo para que pueda obtener un resultado así.

Para generar una advertencia, utilice el advertencia () función en lugar de la Deténgase() función. Por lo tanto, para obtener el resultado que su colega quiere, sólo tiene que cambiar el cuerpo de la función para el siguiente código:

 X lt; - ifelse (x lt; 0 | x> 1, NA, x) si (cualquier (is.na (x))) aviso ('x no entre 0 y 1') log (x / (1 - x))

Si intenta la función ahora, se obtiene el resultado deseado:

> Logitpercent (c ('50% ',' 150% ')) [1] mensaje 0 NAWarning: En logit (as.numeric (x) / 100): No x entre 0 y 1

No sólo el retorno de la función N / A cuando lo que debería, pero también te da una advertencia que puede ayudar con la depuración de otras funciones que utilizan la logit () funcionar en algún lugar del cuerpo.




» » » » ¿Cómo generar tus propios mensajes de error en r