gpt4 book ai didi

r - 如何在 R 中处理大数?

转载 作者:行者123 更新时间:2023-12-04 03:58:06 26 4
gpt4 key购买 nike

我想更改 R 计算中的精度。例如,我想计算 x^6x = c(-2.5e+59, -5.6e+60) .为了计算它,我应该改变 R 中的精度,否则结果是 Inf ,我不知道该怎么做。

最佳答案

正如 Livius 在他的评论中指出的那样,这是 R(实际上也是大多数编程语言)的一个问题,即数字如何用二进制表示。

要处理极大/极小的浮点数,您可以使用 Rmpfr图书馆:

install.packages("Rmpfr")
library("Rmpfr")
x <- c(-2.5e+59, -5.6e+60)
y <- mpfr(x, 6) # the second number is how many precision **bits** you want - NB: not decimal places!
y^6
# 2 'mpfr' numbers of precision 6 bits
# [1] 2.50e356 3.14e364

要处理甚至大于 R 可以处理的数字(例如 exp(1800) ),您可以使用“Brobdingnag”包:
install.packages("Brobdingnag")
library("Brobdingnag")

## An example of a single number too large for R:
10^1000.7
# [1] Inf

## Now using the Brobdingnag package:
10^as.brob(1000.7)
# [1] +exp(2304.2)

关于r - 如何在 R 中处理大数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22466328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com