Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
包装的使用‘;Brobdingnag’;用R语言_R - Fatal编程技术网

包装的使用‘;Brobdingnag’;用R语言

包装的使用‘;Brobdingnag’;用R语言,r,R,我在使用Brobdingnag包时遇到了问题-在设置之后 a2 <- as.brob(0.1)^1000, a2我可以用以下代码重现您的问题。一个答案可能是+而不是sum。补充:另一种方法是在求和之前将数据放入向量中 > library(Brobdingnag) > (a1 <- as.brob(0.1)^800) [1] +exp(-1842.1) > (a2 <- as.brob(0.1)^1000) [1] +exp(-2302.6) > &

我在使用Brobdingnag包时遇到了问题-在设置之后

a2 <- as.brob(0.1)^1000, 

a2我可以用以下代码重现您的问题。一个答案可能是
+
而不是
sum
。补充:另一种方法是在求和之前将数据放入向量中

> library(Brobdingnag)
> (a1 <- as.brob(0.1)^800) 
[1] +exp(-1842.1)
> (a2 <- as.brob(0.1)^1000)
[1] +exp(-2302.6)
>
> a1 + a2
[1] +exp(-1842.1)
> a2 + a1
[1] +exp(-1842.1)
>
> sum(a1, a2)
[1] +exp(-1842.1)
> sum(a2, a1)
[1] +exp(-2302.6)
> 
> sum(as.brob(0.1)^c(1000,800))
[1] +exp(-1842.1)
> sum(as.brob(0.1)^c(800,1000))
[1] +exp(-1842.1)

奇怪-我给包的创建者发了一封电子邮件,让我们看看他是否回答了。使用+符号而不是求和是一个问题,因为我有一个Brob矩阵,我想对它的行求和(多次),这意味着我必须添加“+”循环才能得到和-这并不可怕,但有点可怕ugly@user206903:矩阵不应该是问题。例如
sum(as.brob(0.1)^c(1000800))
sum(as.brob(0.1)^c(8001000))
都给出了相同(我认为正确)的结果。我将在上面补充这一点
> a1 <- as.brob(0.1)^800
> a2 <- as.brob(0.1)^1000
> a1+a2


> a1 <- as.brob(0.1)^800
> a2 <- as.brob(0.1)^1000


> a1+a2
[1] +exp(-1842.1)
> a2+a1
[1] +exp(-1842.1)

> sum(cbrob(a1,a2))
[1] +exp(-1842.1)
> sum(cbrob(a2,a1))
[1] +exp(-1842.1)
> 
> library(Brobdingnag)
> (a1 <- as.brob(0.1)^800) 
[1] +exp(-1842.1)
> (a2 <- as.brob(0.1)^1000)
[1] +exp(-2302.6)
>
> a1 + a2
[1] +exp(-1842.1)
> a2 + a1
[1] +exp(-1842.1)
>
> sum(a1, a2)
[1] +exp(-1842.1)
> sum(a2, a1)
[1] +exp(-2302.6)
> 
> sum(as.brob(0.1)^c(1000,800))
[1] +exp(-1842.1)
> sum(as.brob(0.1)^c(800,1000))
[1] +exp(-1842.1)
> as.brob(0.1) + as.brob(1)           # OK, gives exp(ln(1.1))
[1] +exp(0.09531)     
> as.brob(1) + as.brob(0.1)           # OK, gives exp(ln(1.1))
[1] +exp(0.09531)
> sum(as.brob(c(0.1, 1)))             # OK, gives exp(ln(1.1))
[1] +exp(0.09531)
> sum(as.brob(c(1, 0.1)))             # OK, gives exp(ln(1.1))
[1] +exp(0.09531)
>
> sum(as.brob(0.1), as.brob(1))       # not OK, gives first term exp(ln(0.1))
[1] +exp(-2.3026)
> sum(as.brob(1), as.brob(0.1))       # not OK, gives first term exp(ln(1))
[1] +exp(0)