Cómo cazar insectos en r
La caza de bichos en R a veces puede ser una situación difícil. Aunque el mensaje de error siempre te dice qué línea de código genera el error, puede que no sea la línea de código donde las cosas empezaron a ir mal. Esto hace bug caza un negocio complejo, pero algunas estrategias sencillas puede ayudar a rastrear a estas criaturas molestas.
Calcular el logit
Para ilustrar algunas estrategias bug-caza en R, utilice un ejemplo sencillo. Digamos, por ejemplo, su colega escribió dos funciones para calcular el logit de ambas proporciones y porcentajes, pero no puede llegar a trabajar. Así, se le pide que ayude a encontrar los bichos. Aquí está el código que te envía:
# Controles de entrada y hace calculationlogit logit lt; - la función (x) x> 1, "NA", x) log (x / (1 - x)) # transforma porcentaje de número y llama logitlogitpercent lt; - la función (x) {x lt; - gsub ("%", "", x) logit (as.numeric (x))}
Copia y pega este código en el editor, y guarde el archivo utilizando, por ejemplo, logitfunc.R como su nombre. Después de eso, la fuente el archivo en R desde el editor utilizando el fuente() función o el botón de la fuente o el comando desde el editor de su elección. Ahora el código de función se carga en R, y ya está listo para comenzar la caza.
El logit es otra cosa que el logaritmo de las probabilidades, calculado como log (x / (1-x)) si X es la probabilidad de algún evento que tiene lugar. Los estadísticos utilizan este al modelar datos binarios utilizando modelos lineales generalizados. Si alguna vez tiene que calcular un logit usted mismo, usted puede utilizar la función qlogis () para eso. Para calcular las probabilidades de los valores logit, se utiliza el plogis () función.
Sepa dónde viene un error de
Su colega se quejó de que él consiguió un error al intentar el siguiente código:
> Logitpercent ('50% ') Error en 1 - x: argumento no numérico al operador binario
Efectivamente, pero no encuentras el código 1 - x en el cuerpo de logitpercent (). Así, el error viene de otro lugar. Para saber de dónde, puede utilizar la rastrear() función inmediatamente después de producirse el error, así:
> Rastreo () 2: logit (as.numeric (x)) en logitfunc.R # 91: logitpercent ("50%")
Esta rastrear() función imprime lo que se llama la pila de llamadas que conducen a la última error. Esta pila de llamadas representa la secuencia de llamadas a funciones, pero en orden inverso. La función en la parte superior es la función en la que se genera el error real.
En este ejemplo, R llama el logitpercent () función, y que la función, a su vez, llamado logit (). El rastreo le dice que se produjo el error dentro de la logit () función. Aún más, la rastrear() función le dice que se produjo el error en la línea 9 del logitfunc.R archivo de código, como se indica por logitfunc.R # 9 en el rastrear() de salida.
La pila de llamadas le da un montón de información - a veces demasiado. Se puede apuntar a alguna función interna oscura como la que lanzó el error. Si esa función no suena, compruebe superior en la pila de llamadas para una función a reconocer y iniciar la depuración de allí.