2016-06-30 116 views
-1

如何按時間對數據幀列進行排序?它看起來像這樣:R數據幀排序

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 

我已經嘗試了兩種不同的方法:到目前爲止

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

都沒有奏效。

+0

嘗試'as.POSIXct'或'strptime'即'好([order(as.POSIXct(good $ TIme,...'as.Date'只返回日期而不是時間,因爲Time中的所有元素都有一個日期(在你的例子中),所以它不會進行任何排序。 – akrun

+0

as.POSIXct工作。謝謝。 – Dexstrum

回答

1

我們可能需要as.POSIXctstrptime將'時間'列轉換爲DateTime類。使用as.Date剝離時間部分,我們只剩下日期。在這個例子中,只有一天,所以它不會按照我們的意圖進行排序。

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

ISO日期可以按照詞彙順序排序。這是他們更好的屬性之一:

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