Retrait de NA dans la matrice de corrélation

Je suis en train de faire une matrice de corrélation pour un dataframe de 4000 variable et je voudrais enlever les variables montrant > 0.5 corrélation, donc je suis en utilisant cette commande à partir du {lambda} package.

removeme <- findCorrelation(corrMatrix, cutoff = 0.5, verbose = FALSE)

Error in if (mean(x[i, -i]) > mean(x[-j, j])) { : 
missing value where TRUE/FALSE needed

Les données que j'ai est très variable, et je reçois NA valeurs ici et là. Pour commencer, je ne pouvais pas trouver quelque chose qui peut faire face à NA valeurs sur la page d'aide de cette commande, j'ai donc décidé de supprimer le NA les valeurs de moi-même.

Certaines variables présentent des NA les valeurs de tout le chemin à travers les données, et certains montrent quelques NA valeurs. Je suis en train de supprimer les variables qui sont à l'origine de tout NA valeurs, de sorte que je serais en mesure d'utiliser la commande ci-dessus. Voici un exemple minimal de ce que mon apparence des données

dput(df) <- structure(list(GK = 1:10, HGF = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L), HJI = c(2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), 
HDF = c(5L, 6L, 8L, 9L, 5L, 2L, 4L, 3L, 2L, 1L), KLJG = c(0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), KLJA = c(0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L), KDA = c(10L, 11L, 15L, 18L, 
11L, 10L, 10L, 15L, 12L, 13L), OIE = c(NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA), AFE = c(0L, 0L, 0L, 1L, 0L, 0L, NA, 
NA, NA, NA)), .Names = c("GK", "HGF", "HJI", "HDF", "KLJG", 
"KLJA", "KDA", "OIE", "AFE"), class = "data.frame", row.names = c(NA, 
-10L))
corrMatrix <- cor(df,use="pairwise.complete.obs")

Quelle serait la meilleure idée pour se débarrasser de ces satanés variables? J'ai essayé Beaucoup de commandes, mais n'a pas accès à un idéal qui serait de se débarrasser de ces variables. Voici l'un de mes essais:

removeme <- corrMatrix[,which(as.numeric(rowSums(is.na(corrMatrix))) > 100)] 

Le problème avec cette commande que si il n'y avait plus de 100 défectueux variables (donnant NA dans la matrice de corrélation) les variables normales seront supprimés, de même que les colonnes de la variable normale aura > 100 NA valeurs.

J'espère que cette modification faite ma question plus clairement. Des acclamations.

S'il vous plaît poster un échantillon de votre corrMatrix . Si il y a NA valeurs dans la matrice, alors vous devez décider ce que vous voulez y mettre, par exemple, des zéros ou artificielle de grande valeur, afin de permettre findCorrelation pour accomplir sa tâche.

OriginalL'auteur Error404 | 2013-10-01