0

を使用して R で行ごとにベクトルを出力するとcat()、結果は通常の出力とは異なる方法で丸められます。

> dbinom(0:10, 10, 0.95)
 [1] 9.765625e-14 1.855469e-11 1.586426e-09 8.037891e-08 2.672599e-06
 [6] 6.093525e-05 9.648081e-04 1.047506e-02 7.463480e-02 3.151247e-01
[11] 5.987369e-01
> options(scipen=999)
> dbinom(0:10, 10, 0.95)
 [1] 0.00000000000009765625 0.00000000001855468750 0.00000000158642578125
 [4] 0.00000008037890625000 0.00000267259863281252 0.00006093524882812524
 [7] 0.00096480810644531680 0.01047505944140628489 0.07463479852001964066
[10] 0.31512470486230492739 0.59873693923837867370
> cat(dbinom(0:10, 10, 0.95), sep = "\n")
0.00000000000009765625
0.00000000001855469
0.000000001586426
0.00000008037891
0.000002672599
0.00006093525
0.0009648081
0.01047506
0.0746348
0.3151247
0.5987369

小数点以下を保持するにはどうすればよいですか?

4

1 に答える 1

1

を使用してこれを試してくださいsprintf

> cat(sprintf("%.20f", dbinom(0:10, 10, 0.95)),sep="\n")
0.00000000000009765625
0.00000000001855468750
0.00000000158642578125
0.00000008037890625000
0.00000267259863281251
0.00006093524882812514
0.00096480810644531680
0.01047505944140628489
0.07463479852001966841
0.31512470486230481637
0.59873693923837867370

また、15 桁を超える精度は、浮動小数点計算を使用したせいでせいぜい偽物であることに注意してください。0.31512470486230492739あなたのデータと0.31512470486230481637私のデータが 15 桁を超えて一致しないことに注意してください。

于 2013-06-24T06:39:31.410 に答える