corは相関のためにNAまたは1のみを示します - なぜですか?

StackOverflow https://stackoverflow.com/questions/3798998

  •  05-10-2019
  •  | 
  •  

質問

私は走っています cor() aで data.frameすべての数値で、私はこれを結果として取得しています:

       price exprice...
price      1      NA
exprice   NA       1
...

どちらでもそうです 1 また NA 結果のテーブル内の各値について。なぜそうなのか NAs有効な相関の代わりに表示されますか?

役に立ちましたか?

解決

1Sは、すべてがそれ自体と完全に相関しているからであり、 NASはあるからです 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を返します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top