2017-04-14 54 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