2016-06-17 8 views
1

ich eine Datentabelle wie folgt erzeugt haben:, wie die Tabelle, um zu bestellen, indem Sie eine bestimmte Spalte mit einigen bestimmten Format Sortierung

df<-read.table("C:\\Desktop\\ID.txt",header=FALSE, sep=",") 
df.table<-data.frame(df) 

Die Daten sieht wie folgt aus

A    B      C 
1 2016-04-08 21:51:19.232000000 4624 
2 2016-04-08 21:51:20.232000000 4623 
3 2016-04-08 21:51:23.223000000 4646 
4 2016-03-08 21:51:23.224000000 4624 
5 2016-04-08 21:51:23.210000000 4625 
6 2016-02-08 21:51:24.251000000 4648 

Ich mag würde, um zu bestellen Diese Tabelle folgt der sortierten Reihenfolge der B-Spalte

A    B      C 
6 2016-02-08 21:51:24.251000000 4648 
4 2016-03-08 21:51:23.224000000 4624 
1 2016-04-08 21:51:19.232000000 4624 
2 2016-04-08 21:51:20.232000000 4623 
5 2016-04-08 21:51:23.210000000 4625 
3 2016-04-08 21:51:23.223000000 4646 

Darf ich wissen, wie das geht?

+0

'read.table' erzeugt einen data.frame, so dass kein Zwang erforderlich ist. Auch wenn 'sep = ','', könnten Sie einfach 'read.csv' verwenden, obwohl es leicht abweichende Standardwerte hat (insbesondere' header = TRUE'). Unabhängig davon sollten Sie Ihre Datetime-Spalte mit Ihrem bevorzugten Format formatieren, z. 'df $ B <- as.POSIXct (df $ b, tz = 'UTC')'. – alistaire

+1

Es scheint mir, dass das Ändern von "UTC" wird die Endloskette entfernen, wie 223000000, ich muss es zu trennen 2016-04-08 21: 51: 23.210000000 und 2016-04-08 21: 51: 23.223000000 – user288609

+0

UTC ist nur die Zeitzone; Es wirkt sich nicht auf Sekunden aus. Sie sind dort, auch wenn sie nicht in ihrem Anzeigeformat gedruckt werden. Sie können die 'options (digs.scs = 6)' (oder was auch immer Sie möchten) einstellen, wenn Sie möchten, dass es mehr Ziffern druckt; siehe '? DateTimeClasses'. – alistaire

Antwort

1

Wir order auf der POSIXct Spalte

dfN <- df1[order(df1$B),] 
dfN 
# A      B C 
#6 6 2016-02-08 21:51:24.250 4648 
#4 4 2016-03-08 21:51:23.223 4624 
#1 1 2016-04-08 21:51:19.232 4624 
#2 2 2016-04-08 21:51:20.232 4623 
#5 5 2016-04-08 21:51:23.210 4625 
#3 3 2016-04-08 21:51:23.223 4646 

Hier können, ging ich davon aus, dass die Spalte ‚B‘ in POSIXct Klasse ist oder sonst können wir es order

zu diesem class, bevor wir konvertieren
options(digits.secs = 4) 
df1$B <- as.POSIXct(df1$B) 
Verwandte Themen