我有这样的功能
Squ <- function(x, expected.result){
result <- x*x
if(result != expected.result){
stop("We have some error /n/n")
return(NULL)
}
return(result)
}
我跑到三行以下。
Squ(2, 4)
Squ(3, 7)
Squ(4, 16)
理想情况下,我希望这个脚本将在第二行停止,即 Squ(3,7),就好像条件在函数中为真但它没有停止&amp;完全运行脚本。如果条件满足,如何编写脚本以停止。
谢谢, 摩尼
答案 0 :(得分:0)
通常情况下,以交互方式运行R代码意味着即使出现错误,您也会继续运行新的代码行。如果您希望代码在出现任何类型的错误时立即停止,则应将调用包装在函数中Squ
。如果要保存每个测试的值,则必须编辑该函数,但看起来您已经知道每个值应该是什么,并且您正在尝试查找第一个错误。使用函数将为您提供第一条错误消息,然后暂停执行。
test_Squ <- function() {
Squ(2, 4)
Squ(3, 7)
Squ(4, 16)
print("All code ran without throwing an error")
}
test_Squ()
# Error in Squ(3, 7) : We have some error /n/n
如果您有更具体的用例,请告诉我,我会编辑我的答案。