我在我的代码中使用数据检查,例如以下代码:
if (...)
stop(paste('Warning: Weights do not sum up to 1')
问题是如果条件为真并且警告出现在控制台中,代码不会停止运行。如果隐藏在长代码中,需要始终向上滚动控制台输出以查看是否出现警告。
有没有一种方法可以告诉R当停止警告出现并且条件为真时中断所有代码?类似BREAK的东西?
我这里没有提供可重现的示例,因为我的代码非常长。
编辑:
这里是一个小示例:
当我执行
a=1+2
if (a==3)
stop('a equals 3')
b=4
1+1
我想在打印后停止执行
> a=1+2
>
> if (a==3)
+ stop('a equals 3')
Error: a equals 3
但是 R 执行所有内容,包括最后一部分:
> a=1+2
>
> if (a==3)
+ stop('a equals 3')
Error: a equals 3
>
>
> b=4
>
> 1+1
[1] 2
stop("foo_error"); print(iris)
并且想要避免回显/评估print(iris)
?stop
旨在用于函数中,您可以将代码包装在函数中。例如,fun <- function() {stop("foo_error"); print(iris)}; fun()
。 - Roland