首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止R显示exp和log值inf和0

如何防止R显示exp和log值inf和0
EN

Stack Overflow用户
提问于 2021-07-07 02:20:30
回答 2查看 186关注 0票数 2

我将计算矩阵的正态密度,以便在对数似然公式中使用它们。

在我的计算中,我需要计算大数(数千万)的指数。我意识到,当我>=710时,R返回了exp(i)的无穷大。

有没有什么办法我可以手动强制R不显示无穷大,或者相应地它的log不为0?

感谢您纠正我的拼写错误

EN

回答 2

Stack Overflow用户

发布于 2021-07-07 02:23:32

您应该知道R中的最大双精度数是.Machine$double.xmax。如果你有比这个更大的数字,它肯定会给你Inf

代码语言:javascript
复制
> log(.Machine$double.xmax)  
[1] 709.7827
票数 4
EN

Stack Overflow用户

发布于 2021-07-07 02:59:46

还有一个贡献包Brobdingnag,它可以处理比exp(710)大得多的数字。

代码语言:javascript
复制
library(Brobdingnag)

exp(as.brob(710))
#[1] +exp(710)

exp(as.brob(10^seq(100, 310, by = 5)))
# [1] +exp(1e+100) +exp(1e+105) +exp(1e+110) +exp(1e+115) +exp(1e+120)
# [6] +exp(1e+125) +exp(1e+130) +exp(1e+135) +exp(1e+140) +exp(1e+145)
#[11] +exp(1e+150) +exp(1e+155) +exp(1e+160) +exp(1e+165) +exp(1e+170)
#[16] +exp(1e+175) +exp(1e+180) +exp(1e+185) +exp(1e+190) +exp(1e+195)
#[21] +exp(1e+200) +exp(1e+205) +exp(1e+210) +exp(1e+215) +exp(1e+220)
#[26] +exp(1e+225) +exp(1e+230) +exp(1e+235) +exp(1e+240) +exp(1e+245)
#[31] +exp(1e+250) +exp(1e+255) +exp(1e+260) +exp(1e+265) +exp(1e+270)
#[36] +exp(1e+275) +exp(1e+280) +exp(1e+285) +exp(1e+290) +exp(1e+295)
#[41] +exp(1e+300) +exp(1e+305) +exp(Inf)       

而且10^305710大得多。请参阅vignette包。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68275613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档