我对R不报告错误行号感到非常沮丧...即使在保存脚本并使用以下命令调用时也是如此source()
:
options(show.error.locations = TRUE)
source("run.R")
# Error in `[.data.frame`(pred, , c("avgScore")) :
# undefined columns selected
我不明白这一点,即使我使用R多次报告行号,但现在也不行:
source("run.R", keep.source=TRUE)
R将在两种不同情况下报告错误位置:
keep.source=TRUE
在使用有效选项分析的代码中发生错误。对于您来说不幸的是,您看到的错误是在[.data.frame
函数中,该函数在base
软件包中,而不是run.R
文件中。R通常不是由构建的keep.source=TRUE
,因此base
包函数不会报告行号。但是,仍然可以查看错误发生的位置。看到错误后,运行traceback()
。(如果您使用的是RStudio,通常会有一个弹出窗口选项可以说明Show traceback
这一点。)
例如,当我获取此文件(Untitled.R
)时:
f <- function() {
df <- data.frame(x=1, y=2)
df[,"z"]
}
f()
我得到错误
Error in `[.data.frame`(df, , "z") : undefined columns selected
并traceback()
显示
8: stop("undefined columns selected")
7: `[.data.frame`(df, , "z") at Untitled.R#3
6: df[, "z"] at Untitled.R#3
5: f() at Untitled.R#6
4: eval(ei, envir)
3: eval(ei, envir)
2: withVisible(eval(ei, envir))
1: source("~/temp/Untitled.R")
第6行和第7行是重要的行,指示错误在我文件的第3行中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句