要复制此错误,您必须首先安装包 MARSS。我还包括用户指南。
https://cran.r-project.org/web/packages/MARSS/vignettes/UserGuide.pdf
可以使用第 35 页上的示例调用
dat = t(harborSealWA)
dat = dat[2:nrow(dat),]
debugonce(MARSSkem)
kemfit = MARSS(dat)
Run Code Online (Sandbox Code Playgroud)
在 RStudio 中为 MARSSkem 触发 debugmode 时,您会发现无法设置断点!屏幕顶部还有一条调试消息说:“调试位置是近似的,因为源代码不可用”。我想这就是我不能设置断点的原因!
问题是我试图定位的错误(在所示的简单示例中不存在)是在第 55 次迭代中发现的,并且每次迭代都包含多个 for 循环,每个循环有 100 个循环!手动一步一步根本不实用!
Q1.) 有没有办法在 R studio 中为这个函数设置断点?
Q2.) 如果不是,我找到这个问题的最佳选择是什么?(理想情况下,我不想弄乱包源代码,但如果它是唯一的选择,我会这样做)
谢谢
巴兹
最简单的方法(我认为)是制作您自己的函数副本,获取它的源代码,然后使用断点。
去做这个:
View(MARSS)
Run Code Online (Sandbox Code Playgroud)
您应该会看到源弹出窗口。现在将其复制粘贴到一mymarss <-开始的新脚本中,保存它(可能为 mymarss.R),然后获取它。
source(mymarss.R)
Run Code Online (Sandbox Code Playgroud)
现在你可以像平常一样调试它:
dat = t(harborSealWA)
dat = dat[2:nrow(dat),]
debugonce(mymarss)
kemfit = mymarss(dat)
Run Code Online (Sandbox Code Playgroud)
您可以自由添加/删除断点等。
| 归档时间: |
|
| 查看次数: |
2307 次 |
| 最近记录: |