Ich schreibe eine Funktion, die überprüft, ob (und welche!) Spalte (Variable) alle fehlenden Werte hat (NA
, <NA>
). Das folgende Fragment der Funktion:Suche nach Spalten mit allen fehlenden Werten
test1 <- data.frame (matrix(c(1,2,3,NA,2,3,NA,NA,2), 3,3))
test2 <- data.frame (matrix(c(1,2,3,NA,NA,NA,NA,NA,2), 3,3))
na.test <- function (data) {
if (colSums(!is.na(data) == 0)){
stop ("The some variable in the dataset has all missing value,
remove the column to proceed")
}
}
na.test (test1)
Warning message:
In if (colSums(!is.na(data) == 0)) { :
the condition has length > 1 and only the first element will be used
Q1: Warum ist der obige Fehler und alle Korrekturen?
Q2: Gibt es eine Möglichkeit zu finden, welche der Spalten haben alle NA
, zum Beispiel die Liste ausgeben (Name der Variablen oder Spalte Nummer)?
Ich glaube, das muss zuvor beantwortet worden sein: so etwas wie 'Namen (Daten) [lapply (Daten, Funktion (x) alle (is.na (x)))]] –
Ihre Klammern sind falsch. Schreibe 'colSums (! Is.na (data)) == 0' anstelle von' colSums (! Is.na (data) == 0) '. – sgibb