corは相関のためにNAまたは1のみを示します - なぜですか?
-
05-10-2019 - |
質問
私は走っています cor()
aで data.frame
すべての数値で、私はこれを結果として取得しています:
price exprice...
price 1 NA
exprice NA 1
...
どちらでもそうです 1
また NA
結果のテーブル内の各値について。なぜそうなのか NA
s有効な相関の代わりに表示されますか?
解決
1
Sは、すべてがそれ自体と完全に相関しているからであり、 NA
Sはあるからです NA
変数にs。
デフォルトは完全な情報を持つ係数のみを計算することであるため、欠損値があるときにRが相関を計算する方法を指定する必要があります。
この動作をで変更できます use
への議論 cor
, 、 見る ?cor
詳細については。
他のヒント
NASを無視するために相関関係を伝えます use
議論、例:
cor(data$price, data$exprice, use = "complete.obs")
NASは、分散がゼロの属性がある場合にも表示されます(すべての要素が等しい)。たとえば、参照してください:
cor(cbind(a=runif(10),b=rep(1,10)))
返品:
a b
a 1 NA
b NA 1
Warning message:
In cor(cbind(a = runif(10), b = rep(1, 10))) :
the standard deviation is zero
非常にシンプルで正解
使用を使用してNASを無視するように相関関係を伝えます。
cor(data$price, data$exprice, use = "complete.obs")
NAは、実際には2つの理由が原因である可能性があります。 1つは、データにNAがあることです。もう1つは、値の1つが一定であるためです。これにより、標準偏差はゼロに等しくなり、COR関数はNaを返します。
所属していません StackOverflow