2017-02-20 3 views
0

ich versuche, die Mittel des Altersfelds von this Datensatz zu erhalten. Ich habe es gereinigt. aber wenn ichFehler in colMeans (adult_csv [1], na.rm = TRUE): 'x' muss numerisch sein

laufen
colMeans(adult_csv[1], na.rm = TRUE) 

es beschwert sich mit:

Error in colMeans(adult_csv[1], na.rm = TRUE) : 'x' must be numeric 

i versucht haben, die adult_csv[1] und es gibt mir richtig die age Funktion. auch gibt es keine x oder fehlende Daten drin.

+3

Bitte überprüfen Sie die 'str (adult_csv [1])'. Sie tun in einer einzelnen Spalte, warum brauchen Sie 'colMeans' – akrun

+0

das x bezieht sich auf Ihre Datenquelle. Die Funktion wird durch colMeans (x, ...) im Paket definiert, so dass Sie anstelle ihrer Daten den Standardwert angeben ... – sconfluentus

Antwort

1

Wenn Sie read.csv verwenden, gibt es einige Zeichen in der Altersspalte, die R veranlassen, die gesamte Spalte als Zeichenvektor und nicht als Zahl zu lesen. Damit die Funktion hist funktioniert, müssen alle Daten numerisch sein.

Erster Blick auf:

adult_csv[which(is.na(as.numeric(adult_csv[1]))), 1] 

Es gibt eine Reihe von "?" Werte, die R bei der Berechnung des Histogramms nicht verwenden kann. Diese sollten sowieso NA-Werte sein, da "?" ist nur ein Platzhalter für fehlende Daten. Wenn Sie diese Spalte in numerisch konvertieren, gibt Ihnen R eine Warnung, dass es "?" Nicht konvertieren kann. in eine Nummer. Stattdessen wird NA verwendet, aber das ist wahrscheinlich ein gutes Ergebnis in Ihrem Fall.

Verwendung:

adult_csv[1] <- as.numeric(adult_csv[1]) 

Wenn Sie Daten importieren, nehmen Sie einen Moment für diese Art von Sachen zu sehen und lernen, was die Fehlermeldungen bedeuten. Es gibt auch viele andere Fragen zum Stapelüberlauf, die diese Frage beantworten.

Hoffentlich, die Sinn macht.

+0

Ich benutze 'read.csv' und jetzt face mit' Error: (list) object kann nicht gezwungen werden, "double" einzugeben – user5363938

+0

Schwer zu debuggen, ohne zu wissen, wie Sie Ihre Daten importiert haben. Ich habe gerade verwendet: adult_csv <- read.csv ("https://courses.cs.ut.ee/MTAT.03.183/2017_spring/uploads/Main/adult.csv", Header = T, sep = "\ t ", stringsAsFactors = F) – detroyejr

+0

gerade gelöst thx – user5363938

Verwandte Themen