小编Joh*_*ohn的帖子

使用 R 中的条件对象将 `immediate.` 设置为 `TRUE`?

我正在尝试使用条件对象在 R 中发出自定义条件信号。然而,似乎我不能设置immediate.参数TRUE,我也可以改变其他任何参数的stopwarning等功能。有没有办法使用条件对象,但仍保留的其他参数的方式stopwarningmessage

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)

r exception

5
推荐指数
1
解决办法
67
查看次数

标签 统计

exception ×1

r ×1