gpt4 book ai didi

r - 使用source()时如何获取错误行号?

转载 作者:行者123 更新时间:2023-12-04 11:54:31 27 4
gpt4 key购买 nike

我对 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行。

    关于r - 使用source()时如何获取错误行号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58816016/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com