订单日期和特殊时间按降序排列

时间:2016-01-08 17:54:38

标签: r

我有一个格式为

的数据集
2037-12-31 06:30:06 

我尝试以递减格式对其进行排序 我试过了 设数据集名称为dataset,列Timestamp 我试过了

dataset[order(as.Date(dataset$Timestamp,format="%d%m%Y%H%M%s"),decreasing=TRUE),]

但它仍无效

1 个答案:

答案 0 :(得分:0)

首先让我们准备一些模拟数据:

text <- "Timestamp data1 data2
   '2037-12-31 06:30:06' 0.618 1.41
   '2037-12-31 07:30:20' 42  42
   '2016-01-08 19:15:00' 77 124
   '2035-10-09 08:05:01' 3.141 98" 
dataset <- read.table(text=text, header = TRUE)

现在数据存储在名为dataset的数据框中:

> dataset
            Timestamp  data1  data2
1 2037-12-31 06:30:06  0.618   1.41
2 2037-12-31 07:30:20 42.000  42.00
3 2016-01-08 19:15:00 77.000 124.00
4 2035-10-09 08:05:01  3.141  98.00

为了根据日期和时间重新排列行,Timestamp列中的值可以使用as.POSIXlt()进行转换。

然后可以按相反的时间顺序对数据进行重新排序:

> dataset[order(as.POSIXlt(dataset$Timestamp,format="%Y-%m-%d %H:%M:%s"),decreasing=TRUE),] 
#            Timestamp  data1  data2
#2 2037-12-31 07:30:20 42.000  42.00
#1 2037-12-31 06:30:06  0.618   1.41
#4 2035-10-09 08:05:01  3.141  98.00
#3 2016-01-08 19:15:00 77.000 124.00

希望这有帮助。