首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >忽略R中的错误

忽略R中的错误
EN

Stack Overflow用户
提问于 2013-07-24 23:05:34
回答 1查看 371关注 0票数 0

我正在R中运行一个复杂但相对较快的模拟(每次模拟大约需要5-10分钟),并且我开始并行运行它和各种输入值,以便测试我的一些算法的健壮性。

似乎有一个问题:输入的某些排列导致模拟中的致命错误,整个代码崩溃,导致模拟结束。有没有一种简单的方法来捕获错误(可能来自不同的位置),并让它忽略这些输入值并转到下一个位置?

令人沮丧的是,当我设置了一个输入数组来检查,它应该花5-6个小时来运行所有的模拟,但我回来后发现它在前45分钟就崩溃了。

虽然我正在尝试修复bug /识别将我推到该错误的输入,但对于如何在错误出现时忽略/捕获错误,有什么想法吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-07-24 23:16:44

我不知道你是如何组织你的模拟的,但我猜你有一个循环,你在每一步都检查使用新的参数。

您可以使用tryCatch。如果我有错误的输入,我会在这里抛出一个错误。

代码语言:javascript
运行
复制
step.simul <- function (x) {
  stopifnot(x%%2 == 1, x>0)
  (x - 1)/2
}

然后使用tryCatch,我用一个告诉你错误输入的代码来标记错误的输入:

代码语言:javascript
运行
复制
sapply(1:5, function(i)tryCatch(step.simul(i), error=function(e)-1000-i))
[1]     0 -1002     1 -1004     2

如你所见,我的模拟遍历了所有的循环索引。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17837929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档