Undefinierte Spalten, die beim Untersetzen des Datenrahmens ausgewählt wurden

79

Ich habe einen Datenrahmen. str(data)Um mehr über meinen Datenrahmen zu erfahren, ist das Ergebnis wie folgt:

> str(data)
'data.frame':   153 obs. of  6 variables:
$ Ozone  : int  41 36 12 18 NA 28 23 19 8 NA ...
$ Solar.R: int  190 118 149 313 NA NA 299 99 19 194 ...
$ Wind   : num  7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...
$ Temp   : int  67 72 74 62 56 66 65 59 61 69 ...
$ Month  : int  5 5 5 5 5 5 5 5 5 5 ...
$ Day    : int  1 2 3 4 5 6 7 8 9 10 ...

Wenn ich jedoch zum Beispiel die Beträge von Ozoneüber 14 unterteilen möchte, verwende ich den folgenden Code, der mir einen Fehler gibt:

>  data[data$Ozone > 14 ]

Fehler in [.data.frame(Daten, Daten $ Ozone> 14): undefinierte Spalten ausgewählt

CreamStat
quelle
11
Ihnen fehlt ein Komma. Der Fehler weist Sie darauf hin, dass Sie nicht angegeben haben, welche Spalten in Ihre Teilmenge aufgenommen werden sollen.
Ricardo Saporta
1
Mit anderen Worten, denken Sie daran, dass Datenrahmenreferenzen Zeilen- und Spaltenkennungen benötigen. Sie können nur eine Spalte oder alle Spalten auswählen, müssen jedoch angeben, was Sie möchten.
Scott C Wilson
6
Ich arbeite an der gleichen Aufgabe, also weiß ich, dass dies Hausaufgaben sind. Schwache Soße.
Brian MacKay

Antworten:

152

Sie möchten Zeilen, in denen diese Bedingung erfüllt ist, also benötigen Sie ein Komma:

data[data$Ozone > 14, ]
Ari B. Friedman
quelle
18
Warum ... diese Syntax macht für mich keinen Sinn
Reinderien
3
@ Reinderien Es ist eine übliche Art, Arrays zu indizieren. Schauen Sie sich die R-Dokumentation der alten Schule an, die wirklich gut darin ist, Datenstrukturen zu unterrichten.
Ari B. Friedman
2
Ich bekomme alles außer dem Komma.
Reinderien
11
dat[ 1, 2 ]gibt Ihnen den Eintrag in der ersten Zeile, zweiten Spalte. dat[ 1, ]gibt Ihnen jeden Eintrag in der ersten Zeile. dat[ 1:5, ]gibt Ihnen jede Spalte der Zeilen 1-5.
Ari B. Friedman
6
Es ist 153 x 6, das sind zwei Dimensionen.
Ari B. Friedman