Encontré esto post desde hace un año, y estoy usando R version 2.11.1 (2010-05-31)
, pero sigo recibiendo mensajes de error sin números de línea.R números de línea de script en el error?
¿Alguna solución?
Encontré esto post desde hace un año, y estoy usando R version 2.11.1 (2010-05-31)
, pero sigo recibiendo mensajes de error sin números de línea.R números de línea de script en el error?
¿Alguna solución?
Las respuestas dadas siguen siendo válidas. Devolver números de línea de un script no es tan simple, pero R puede darle mucha más información sobre dónde se puede encontrar el error.
Usted podría utilizar las opciones de error para guardar la información en un archivo, por ejemplo:
options(error = quote({
sink(file="error.txt");
dump.frames();
print(attr(last.dump,"error.message"));
traceback();
sink();
q()}))
La función findLineNum() podría utilizarse si tiene el nombre del archivo en algún lugar disponible. Si usted tiene el mensaje de error, podría hacer algo como:
dump.frames()
x <- attr(last.dump,"error.message")
ll <- gsub("Error in (.*) : .*","\\1",x)
lln <- findLineNum(srcfile,ll)
+1 Gracias, es decepcionante que todavía no se haya implementado por defecto en R. Me parece una característica muy deseable. –
Esto no ayuda si el error está en el nivel superior de un script R. –
En la próxima R 2.14, el equipo central está avanzando hacia la implementación de esta función. Las funciones en scripts cargados con source(file=..., keep.file=TRUE)
contendrán un atributo srcref
, que identifica el rango de caracteres que corresponde a la definición de la función en una copia en memoria del archivo fuente almacenado como un objeto de la clase srcfilecopy
.
Esto no proporciona inmediatamente depuración a nivel de línea, pero le permite obtener números de línea aproximados si está dispuesto a ensuciarse las manos. Además, es progreso.
Recibo mensajes de error con números de línea. ¿Cómo estás cargando tus scripts? – Shane
@Shane Estoy usando Rscript. ¿Cómo estás cargando tus scripts? –
Estoy usando source() desde la GUI de Windows. – Shane