web-dev-qa-db-fra.com

Les valeurs NA ne sont pas exclues dans «cor»

Pour simplifier, j'ai un ensemble de données qui se présente comme suit:

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

Quand j'essaye:

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

Je reçois:

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

J'ai aussi essayé na.action = na.exclude, etc. Aucun ne semble fonctionner. Il serait vraiment utile de savoir quel est le problème et comment je peux le résoudre. Merci.

17
Charlie

TL; DR: Utilisez à la place:

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

Lis ?cor:

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

Il n'a pas na.rm, il a use.

une chaîne de caractères optionnelle donnant une méthode de calcul des covariances en présence de valeurs manquantes. Ce doit être (une abréviation de) l'une des chaînes "everything", "all.obs", "complete.obs", "na.or.complete", ou "pairwise.complete.obs".

Choisissez-en un. Les détails de ce que chacun fait se trouvent dans la section Details de ?cor.

40
Spacedman

Juste pour être sûr que la réponse à cette question est claire.

Pour ignorer NA, utilisez

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