Entfernen von NA in der Korrelations-matrix

Ich bin dabei eine Korrelationsmatrix für ein dataframe von 4000 variable und die würde ich gerne entfernen der Variablen anzeigen > 0.5 Korrelation, so bin ich mit diesem Befehl aus dem {caret} - Paket.

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

Die Daten, die ich habe, ist sehr variabel, und ich bekomme die NA-Werte hier und da. So starten Sie mit, ich konnte Sie nicht finden, etwas, das umgehen können mit NA-Werte auf der Hilfeseite zu diesem Befehl, also beschloss ich, entfernen die NA-Werte selbst.

Einige Variablen zeigen NA-Werte über den gesamten Daten, und einige zeigen einige NA-Werte. Ich bin versucht zu entfernen, die Variablen, die verursachen keine NA-Werte, so dass ich in der Lage sein, um die oben genannten Befehl. Hier ist ein minimal-Beispiel, was meine Daten sieht wie

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")

Was wäre die beste Idee, um loszuwerden, diese lästigen Variablen? Ich habe versucht, Viele Befehle, aber nicht bekommen, um die ideale eine, die loszuwerden, diese Variablen. Hier einer meiner versuche:

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

Das Problem mit diesem Befehl, dass, wenn es war über eine 100-fehlerhafte Variablen (die NA in der Korrelations-matrix) die normale Variablen entfernt werden, da die Spalten der normalen variable wird > 100 NA-Werte.

Ich hoffe, dieses edit gemacht meine Frage klarer. Cheers.

Bitte post eine Probe Ihres corrMatrix . Wenn es NA Werte in der matrix, dann müssen Sie entscheiden, was Sie wollen, dort zu setzen, z.B. mit Nullen oder ein künstliches großen Wert, damit findCorrelation um seine Aufgabe zu beenden.

InformationsquelleAutor Error404 | 2013-10-01

Schreibe einen Kommentar