首页 > 解决方案 > 防止 `recover` 尝试打印巨大的对象

问题描述

options(error = recover)大多数情况下都很好,但是如果在调用堆栈中的函数具有非常大的参数时调用它就会遇到麻烦。例如:

R version 4.0.2 (2020-06-22) -- "Taking Off Again" -- x86_64-pc-linux-gnu
> options(error = recover)
> l = list(x = data.frame(a = rnorm(1e6), b = rnorm(1e6)))
> f = function(x) stop()
> do.call(f, l)
Error in (function (x)  :

R 挂在那里,并且不响应 Control-C,因为它试图 stringify l

如何防止recover尝试打印函数参数,或者至少尝试打印非常大的函数参数?

标签: rdebugging

解决方案


推荐阅读