cor()
ベクトルに非常に大きな数があり、ゼロを返す場合、関数は相関値の計算に失敗します。
foo <- c(1e154, 1, 0)
bar <- c(0, 1, 2)
cor(foo, bar)
# -0.8660254
foo <- c(1e155, 1, 0)
cor(foo, bar)
# 0
非常に大きいですが1e155
、Rが処理できる最大数よりはるかに小さいです。NA
Rが間違った値を返し、またはのようなより適切な結果を返さないのは私にとって驚くべきことですInf
。
その理由はありますか?私たちのプログラムでそのような状況に直面しないようにするにはどうすればよいですか?