57 votes

cor ne montre que NA ou 1 pour les corrélations - Pourquoi ?

J'exécute cor() sur un data.frame avec toutes les valeurs numériques et j'obtiens ceci comme résultat :

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

Il s'agit donc de 1 ou de NA pour chaque valeur de la table résultante. Pourquoi les NA s'affichent-ils au lieu de corrélations valides ?

88voto

dmt Points 1641

Dites à la corrélation d'ignorer les NA avec l' use , par exemple :

 cor(data$price, data$exprice, use = "complete.obs")

18voto

mbq Points 8963

Les NA apparaissent également s'il existe des attributs avec une variance nulle (avec tous les éléments égaux) ; voir par exemple :

 cor(cbind(a=runif(10),b=rep(1,10)))

qui renvoie :

    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

8voto

Patrick Koua Points 95

réponse très simple et correcte

Dites à la corrélation d'ignorer les NA avec l'argument use, par exemple :

 cor(data$price, data$exprice, use = "complete.obs")

3voto

STG Points 31

Le NA peut en fait être dû à 2 raisons. La première est qu'il y a un NA dans vos données. Un autre est dû au fait que l'une des valeurs est constante. Il en résulte que l'écart type est égal à zéro et donc la fonction cor renvoie NA.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X