Plot viele Histogramme mit einer for-Schleife in R
Habe ich eine .csv-Datei mit Daten wie diesen:
RI Na Mg Al Si K Ca Ba Fe Type
1 1.51793 12.79 3.50 1.12 73.03 0.64 8.77 0.00 0.00 BWF
2 1.51643 12.16 3.52 1.35 72.89 0.57 8.53 0.00 0.00 VWF
3 1.51793 13.21 3.48 1.41 72.64 0.59 8.43 0.00 0.00 BWF
4 1.51299 14.40 1.74 1.54 74.55 0.00 7.59 0.00 0.00 TBL
5 1.53393 12.30 0.00 1.00 70.16 0.12 16.19 0.00 0.24 BWNF
6 1.51655 12.75 2.85 1.44 73.27 0.57 8.79 0.11 0.22 BWNF
Erstellen Sie Histogramme für die Verteilung der einzelnen Spalten.
Ich hab das versucht:
data<-read.csv("glass.csv")
names<-(attributes(data)$names)
for(name in names)
{
dev.new()
hist(data$name)
}
Aber ich bekomme immer diese Fehlermeldung: Error in hist.default(data$name) : 'x' must be numeric
Gehe ich davon aus, dass dieser Fehler, weil attributes(data)$names
gibt eine Reihe von Zeichenfolgen, "RI" "Na" "Mg" "Al" "Si" "K" "Ca" "Ba" "Fe" "Type"
Aber ich bin nicht in der Lage, konvertieren Sie Sie in das nötige format.
Jede Hilfe ist willkommen!
InformationsquelleAutor Randomly Named User | 2014-01-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie in der Nähe waren. Ich glaube, Sie waren auch versucht, zu bekommen
Type
am Ende.Könnte man auch einfach eine Schleife durch die Spalten direkt:
Aber
ggplot2
ist entworfen für mehrere Grundstücke. Versuchen Sie es so:InformationsquelleAutor nograpes
Eher als das zeichnen viel Histogramme, eine bessere Lösung zu zeichnen ist eine Zeichnung mit Histogrammen in Platten.
Für diese, müssen Sie die
reshape2
undggplot2
Pakete.Ersten, müssen Sie konvertieren Sie Ihre Daten von Breite zu lange form.
Dann erstellen Sie eine ggplot der
value
argument (Sie können den Namen ändern, der diesem durch die übergabevalue.name = "whatever"
im Aufrufmelt
oben) mit Histogrammen in jedem Feld, geteilt durch jedes element.InformationsquelleAutor Richie Cotton
hist(data$name)
sieht für eine Spalte mit dem Namenname
, die gibt es nicht. Verwendenhist(data[,name])
statt.InformationsquelleAutor lukeA