我正在重构使用外部软件包BayesLogit
的R代码。它不再位于CRAN上,因此我必须安装XCode命令行工具GFortran,并使用来安装软件包
install_version("BayesLogit", version = "0.6")
对其进行的调用失败,并显示输出和错误:
out_bayes1 <- BayesLogit::logit(y=y, X=X, P0=P0, samp=n_samp, burn=n_samp )
[1] "y is a proportion; it must be <= 1."
Error: $ operator is invalid for atomic vectors
该函数的所有参数都可以计算和打印。打印输出和错误之间的联系不清楚。追溯是:
5: BayesLogit::logit(y = y, X = X, P0 = P0, samp = n_samp, burn = n_samp) at pcb_vb_classn_sb.R#224
4: eval(ei, envir)
3: eval(ei, envir)
2: withVisible(eval(ei, envir))
1: source("code.R",
echo = TRUE)
如果我将y
缩放到0到1之间,则函数调用成功,但是我仍然需要使用原始数据来再现结果。
我可以打印出一个具有更深堆栈跟踪的回溯,该堆栈跟踪显示引发错误的行,还是受软件包编译的限制?如果是后者,我该如何调试软件包中的此错误?