web-dev-qa-db-ja.com

「cor」で除外されていないNA値

簡単にするために、私は次のようなデータセットを持っています:

b <- 1:6
# > b
# [1] 1 2 3 4 5 6
jnk <- c(2, 4, 5, NA, 7, 9)
# > jnk
# [1]  2  4  5 NA  7  9

私が試したとき:

cor(b, jnk, na.rm=TRUE)

私は得ます:

> cor(b, jnk, na.rm=T)
  Error in cor(b, jnk, na.rm = T) : unused argument (na.rm = T)

私も試しましたna.action = na.excludeなど。どれも動作しないようです。問題が何であるか、そして私がそれをどのように修正できるかを知ることは本当に役に立ちます。ありがとう。

17
Charlie

TL; DR:代わりに使用:

cor(b, jnk, use="complete.obs")

?corを読みます:

cor(x, y = NULL, use = "everything",
     method = c("pearson", "kendall", "spearman"))

na.rmはなく、useがあります。

欠損値が存在する場合の共分散を計算する方法を提供するオプションの文字列。これは、文字列"everything""all.obs""complete.obs""na.or.complete"、または"pairwise.complete.obs"の(の省略形)である必要があります。

一つを選ぶ。それぞれが行うことの詳細は、?corDetailsセクションにあります。

40
Spacedman

この質問に対する答えが明確であることを確認するためだけに。

NAを無視するには、

b <- 1:6
jnk <- c(2, 4, 5, NA, 7, 9)
cor(b, jnk, use="complete.obs")
[1] 0.9905977
4
Steve Lihn