2017-04-14 49 views
-3

我想按降序排列日期。如何訂購特定的日期時間值

目前我使用這種方法,但它並不總是工作。

data.frame(zoo(data order.by=as.POSIXct(data$date)), row.names=NULL) 

date包含以下值:

x <- "2261 2017-04-14 08:42:17.287374 
     2262 2017-04-14 08:44:30.683207 
     2263 2017-04-14 08:46:43.611042 
     2264 2017-04-14 08:48:56.991276 
     2265 2017-04-14 11:24:26.808124 
     2266 2017-04-14 08:51:09.794308 
     2267 2017-04-14 08:54:06.324218 
     2268 2017-04-14 08:56:19.610852" 

d <- read.table(text=x, header=F) 

請注意,該V1是data.frame的rownames和和V2V3不分離,但一列,命名date

因此,這是更接近我所得到:

data <- data.frame(date=paste(d$V1,d$V2, sep=" ")) 
+4

請參閱如何提供一個可重複的例子[MCVE。 –

+0

好吧,我提供的數據和描述與當前的解決方案一起,不知道還有什麼缺失......提供'讀入'的解決方案...... – Maximilian

+0

'data $ date'在問題中定義是一個因素,它的第一個元素是'2261 2017-04-14'這是不適用於轉換到POSIXct。 'z < - read.zoo(text = x,index = 2:3,tz =「」)''會將'x'讀入動物園對象'z','fortify.zoo(z)'會將其轉換爲一個data.frame。 –

回答

2
x <- "2261 2017-04-14 08:42:17.287374 
     2262 2017-04-14 08:44:30.683207 
2263 2017-04-14 08:46:43.611042 
2264 2017-04-14 08:48:56.991276 
2265 2017-04-14 11:24:26.808124 
2266 2017-04-14 08:51:09.794308 
2267 2017-04-14 08:54:06.324218 
2268 2017-04-14 08:56:19.610852" 

d <- read.table(text=x, header=F) 

rnames = d$V1 

d$Date = paste(d$V2, d$V3) 
d$Date = as.POSIXct(d$Date) 

rownames(d) = rnames 


d = d[order(d$Date, decreasing = TRUE), ] 
d = d["Date"] 

> d 
        Date 
2265 2017-04-14 11:24:26 
2268 2017-04-14 08:56:19 
2267 2017-04-14 08:54:06 
2266 2017-04-14 08:51:09 
2264 2017-04-14 08:48:56 
2263 2017-04-14 08:46:43 
2262 2017-04-14 08:44:30 
2261 2017-04-14 08:42:17