2016-10-06 4 views
1

Ich habe einige Dateinamen, die Termine sind und ich brauche sie in numerischer Reihenfolge zu sortieren, zum Beispiel:Wie sortiere ich das Datum innerhalb einer Zeichenkette?

dates=c("8_18_2016.xlsx","8_25_2016.xlsx","8_4_2016.xlsx") 

und ich möchte es sortieren, zu:

> dates 
"8_4_2016.xlsx" "8_18_2016.xlsx" "8_25_2016.xlsx" 

Dank

+1

Mixed Art ist ein [etwas umstritten] Sache: 'gtools :: mixedsort (c ("8_18_2016.xlsx", "8_25_2016.xlsx",„8_4_2016 .xlsx "))' – alistaire

+0

@alistaire das ist genial dude! Danke – Mohammad

+1

@alistaire dies könnte ein Problem sein, wenn mehr als ein Jahr vertreten ist. Probiere 'gtools :: mixedsort (c (" 8_18_2016.xlsx "," 8_25_2015.xlsx "," 8_4_2016.xlsx "))' um zu sehen was ich meine. – rosscova

Antwort

6

Eine Möglichkeit wäre, die Reihenfolge durch Erstellen eines separaten Vektors zu finden, in dem die Werte in das Datumsformat konvertiert werden:

dates.order <- order(as.Date(dates, format = "%m_%d_%Y.xlsx")) 

dann verwenden Ihre ursprünglichen Vektor zu sortieren:

sorted <- dates[ dates.order ] 
sorted 
[1] "8_4_2016.xlsx" "8_18_2016.xlsx" "8_25_2016.xlsx" 
Verwandte Themen