Corrplot Machine$double.eps valeur manquante
-
20-12-2019 - |
Question
Je veux dessiner un tracé de corrélations.
features = features[,-2]
features<- scale(features[2:ncol(features)],center=TRUE,scale=TRUE);
correlationmatrix <- cor(features)
corrplot(correlationmatrix, order = "hclust")
Jusqu'à la 3ème ligne, tout fonctionne bien.Lors de l'exécution corrplot()
, Je reçois:
Erreur dans if (min(corr) < -1 - .Machine$double.eps || max(corr) > 1 + .Machine$double.eps) { :valeur manquante là où VRAI/FAUX est nécessaire
La solution
Cela se produit probablement parce que vous essayez de tracer un matrice de corrélation avec valeurs manquantes (NA).
Malheureusement, corrplot ne les gère pas correctement...
Vous pouvez tracer les valeurs vous-même avec une autre technique.
Au lieu de cela, j'ai cependant trouvé un simple hack autour de cela.Je ne vous conseillerais pas de l'utiliser, pour mes données, cela a très bien fonctionné.Vous perdrez également la possibilité d'afficher les tests significatifs à l'aide de corrplot.
M=cor(values,use="pairwise.complete.obs")
p = M
p[is.na(M)]=0.2
p[is.na(M)==F]=0
M[is.na(M)]=0
corrplot(M, method="circle", is.corr=T, p.mat=p, sig.level=0.1, order = "FPC")
Malheureusement, je ne suis pas en mesure de publier l'image résultante car je viens de rejoindre et je n'ai pas assez de cette "réputation de stackoverflow".
J'espère que cela vous aidera, ou à toute autre personne ayant le même problème.