R ejecuta el código en la función cuando hay un error de sintaxis y la función no se llama explícitamente
Esto es interesante. Estoy en CentOS 6.9, R-3.4.2. Tengo un código,tmp.R
:
main<-function(){
a = 9
print(a) xyz
print("Should never get here")
}
Cuando ejecuto esto,Rscript tmp.R
, Yo obteng
Error: unexpected symbol in:
" a = 9
print(a) xyz"
No traceback available
[1] "Should never get here"
Error: unexpected '}' in "}"
No traceback available
Esto es bastante confuso porque nuncaactualment llamadomain()
. De hecho, si elimino el error de sintaxis (la tercera línea se convierte enprint(a)
), y lo ejecuto, no hay salida. Este es el comportamiento esperado en mi mente.
PREGUNT: ¿Por qué R ejecuta el código en un script cuando se produce un error de sintaxis, incluso cuando el código no se llama explícitamente (!)
EDITA: Resulta que este comportamiento parece deberse a teneroptions(error=traceback)
se establece en mi.Rprofile
. Este es un comportamiento indeseable, no obstante. Todavía sería deseable poder rastrear cuando está en modo interactivo y no realizar esta extraña ejecución de código en modo no interactivo.