【问题标题】:Order date and specially time in decreasing order订单日期和特别时间按降序排列
【发布时间】:2016-01-08 17:54:37
【问题描述】:

我有一个格式为

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

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

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

但是还是不行

【问题讨论】:

    标签: r


    【解决方案1】:

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

    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的data.frame中:

    > 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
    

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

    那么数据可以按时间倒序重新排序:

    > 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
    

    希望这会有所帮助。

    【讨论】:

    • 先生,我有 10 个变量的 807055 个 obs,其中一列是 Date ,我想按降序排列它们
    • 你已经使用了文本,我该如何在我的代码中使用它们?我有一整个专栏
    • 我需要一个样本数据集来演示这个原理,为此我使用了read.table()text。您的数据可能已经存储在 data.frame 中,因此您可以跳到代码的末尾。这里重要的部分是POSIXlt 的使用和format 说明符的精确形式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    相关资源
    最近更新 更多