2016-06-30 8 views
-1

Wie sortiere ich eine Datenrahmenspalte nach Zeit? Es sieht wie folgt aus:R-Datenrahmen-Sortierung

2016-06-30 00:15:00 
2016-06-30 00:20:00 
2016-06-30 00:30:00 
2016-06-30 00:00:00 
2016-06-30 00:05:00 
2016-06-30 00:10:00 

ich zwei verschiedene Methoden versucht:

1) good[order(good$Time),] 
2) good[order(as.Date(good$Time, format="%Y-%m-%d %h:%m:%s")),, drop=FALSE] 

Keine bisher gearbeitet.

+0

Versuchen mit 'as.POSIXct' oder' strptime' dh 'gut ([Ordnung (as.POSIXct (gut $ TIme, ...' The 'as.Date' gibt nur das Datum und nicht die Zeit zurück.Als die Elemente in der Zeit ein einzelnes Datum haben (in Ihrem Beispiel), wird keine Sortierung durchgeführt. – akrun

+0

as.POSIXct funktioniert. Vielen Dank. – Dexstrum

Antwort

1

Wir benötigen entweder as.POSIXct oder strptime, um die Spalte 'Time' in DateTime Klasse zu konvertieren. Using as.Date streift den Zeitteil ab und wir sind nur mit dem Datum übrig. In dem Beispiel gibt es nur einen einzigen Tag, so dass es nicht so funktioniert, wie wir es beabsichtigt haben.

good([order(as.POSIXct(good$TIme, format="%Y-%m-%d %h:%m:%s")),, drop=FALSE] 
1

ISO-Daten können in lexikalischer Reihenfolge sortiert werden. Das ist eine ihrer schöneren Eigenschaften:

good <- c("2016-06-30 00:15:00", "2016-06-30 00:20:00", "2016-06-30 00:30:00", 
"2016-06-30 00:00:00", "2016-06-30 00:05:00", "2016-06-30 00:10:00" 
) 

order(good) 
## [1] 4 5 6 1 2 3