Para fines de depuración, quiero imprimir un número de línea (y el nombre de la función) desde el lugar desde el que se llamó a la función actual. ¿Cómo consigo esto en R?
He visto una solución para obtener el nombre del archivo fuente ¿Pero cómo obtener el número de línea y el nombre de la función?]
EDITAR: Encontré cómo obtener estos datos de traceback()alguna forma, el rastreo puede imprimirlo, pero no estoy seguro de cómo decodificar la información:
f <- function () {
traceback(x = 3, max.lines = 1)
}
g <- function()
{
f()
}
x <- g()
source("file.R") # file with this code
# 5: g() at file.R#20
# 4: eval(ei, envir)
# 3: eval(ei, envir)
# 2: withVisible(eval(ei, envir))
# 1: source("file.R")
str(x[[1]])
# chr "g()"
# - attr(*, "srcref")= 'srcref' int [1:8] 20 1 20 8 1 8 20 20
# ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x0000000013a31700>
.traceback().