Rのパーセンテージを処理しようとしていますが、奇妙な問題が発生しています。ベクトルの値をベクトルのパーセンテージに変換すると、合計sum
が1にならないことがよくあります。
最小限の例:
data <- rnorm(1000)*100
max <- 50
unlist(lapply(0:(1000/max-1),
function(i)
sum(
data[(i*max+1):(i*(max+1))]
/
sum(data[(i*max+1):(i*(max+1))])
)
))-1
それはゼロのベクトルを与えるはずです、しかし私はこれを得ています:
[1] 0.000000e+00 0.000000e+00 -1.110223e-16 -1.110223e-16 0.000000e+00 -1.110223e-16 0.000000e+00 0.000000e+00 0.000000e+00
[10] 0.000000e+00 0.000000e+00 2.220446e-16 0.000000e+00 -4.440892e-16 0.000000e+00 0.000000e+00 0.000000e+00 4.440892e-16
[19] -1.110223e-16 0.000000e+00
治療法のアイデアはありますか?