我正在尝试使用条件对象在 R 中发出自定义条件信号。然而,似乎我不能设置immediate.参数TRUE,我也可以改变其他任何参数的stop,warning等功能。有没有办法使用条件对象,但仍保留的其他参数的方式stop,warning和message?
MWE:
警告可能以“通常”的方式按预期工作,这意味着在每次迭代时都会出现警告。这就是我的愿望。
# Works as expected
for(i in 1:20){warning("A warning", immediate.=T) ; Sys.sleep(.1)}
>Warning: A warning
>Warning: A warning
>Warning: A warning
>Warning: A warning
>Warning: A warning
... [truncated]
Run Code Online (Sandbox Code Playgroud)
相比之下,当使用下面的条件对象时,会收集警告,然后我们被告知最后有 20 个警告:
尝试 1
# Does not signal warning immediately
cond = structure(list(message="A warning", call=NULL, immediate.=T), class=c("warning", "condition"))
for(i in 1:20){ warning(cond); Sys.sleep(.1) }
>There were 20 warnings (use warnings() to …Run Code Online (Sandbox Code Playgroud)