如果一个值是数值和有限的,我如何检查?假设我使用Rf_rgamma或我自己的例程生成随机数。根据参数的不同,可能会生成错误。我如何在C中检查这一点,并在这种情况下中断循环和整个函数?
我如何检查一个向量,比方说来自RcppArmadillo的arma::vec,是否只包含数值和有限值?
我知道,这些都是一般性的问题。然而,我的特定问题需要几分钟才能重现,而且我还无法创建一个最小的示例。大多数时候,我的函数运行得很好,100.000次中只有1次会导致R崩溃。
发布于 2013-05-29 05:58:20
这里有一种方法:检查每个元素。一个简单的演示:
R> cppFunction('int checker(double x) { return ::R_finite(x);} ')
R> checker(2)
[1] 1
R> checker(0)
[1] 1
R> checker(NaN)
[1] 0
R> checker(Inf)
[1] 0
R> https://stackoverflow.com/questions/16800453
复制相似问题