私はcor()
をすべての数値を使用して_data.frame
_で実行していますが、結果としてこれを取得しています:
_ price exprice...
price 1 NA
exprice NA 1
...
_
そのため、結果のテーブルの各値の_1
_またはNA
になります。有効な相関関係の代わりにNA
sが表示されるのはなぜですか?
1
sは、すべてがそれ自体と完全に相関しているためです。また、NA
sは、変数にNA
sがあるためです。
デフォルトでは完全な情報を持つ係数のみを計算するため、欠損値がある場合にRが相関を計算する方法を指定する必要があります。
この動作は、use
引数をcor
に変更することで変更できます。詳細については、?cor
を参照してください。
use
引数を使用してNAを無視するように相関関係に指示します。例:
cor(data$price, data$exprice, use = "complete.obs")
NAは、分散がゼロ(すべての要素が等しい)の属性がある場合にも表示されます。インスタンスを参照してください:
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
非常にシンプルで正しい答え
Use引数を使用してNAを無視するように相関に指示します。例:
cor(data$price, data$exprice, use = "complete.obs")
NAは実際には2つの理由によるものです。 1つは、データにNAがあることです。もう1つは、値のいずれかが一定であるためです。これにより、標準偏差はゼロになり、cor関数はNAを返します。