【问题标题】:How do I order a data frame by ID, date, then time?如何按 ID、日期和时间排序数据框?
【发布时间】:2013-01-14 09:38:29
【问题描述】:

我在 R 中有这个,我想将每个 ID 号并排放置,然后按日期排序,最后按时间排序...这可能吗?

   ID Val      Date  Time
1   1 0.7 1/13/2013 12:00
2   2 1.6 1/13/2013 12:00
3   3 0.5 1/13/2013 12:00
4   4 2.1 1/13/2013 12:00
5   5 1.2 1/13/2013 12:00
6   1 1.0 1/13/2013 13:00
7   2 1.1 1/13/2013 13:00
8   3 0.9 1/13/2013 13:00
9   4 2.4 1/13/2013 13:00
10  5 0.8 1/13/2013 13:00

【问题讨论】:

    标签: r date time


    【解决方案1】:

    order 可以接受多个参数来做到这一点:

    df <- read.table(text="ID Val      Date  Time
    1   1 0.7 1/13/2013 12:00
    2   2 1.6 1/13/2013 12:00
    3   3 0.5 1/13/2013 12:00
    4   4 2.1 1/13/2013 12:00
    5   5 1.2 1/13/2013 12:00
    6   1 1.0 1/13/2013 13:00
    7   2 1.1 1/13/2013 13:00
    8   3 0.9 1/13/2013 13:00
    9   4 2.4 1/13/2013 13:00
    10  5 0.8 1/13/2013 13:00",header=TRUE)
    
    
    df[with(df,order(ID,Date,Time)),]
    

    请注意,我还没有在这里将Date 和Time 转换为适当的时间课程,这样会产生更好的结果。

    【讨论】:

    • 效果很好!非常感谢!
    【解决方案2】:

    doBy 包中的orderBy 是另一种选择:

    > library(doBy)
    > orderBy(~ID+Date+Time, data=DF)
    

    【讨论】:

    • 很高兴有用。 @shirleywu 考虑通过在得分按钮正下方的绿色刻度中执行 clic 来接受答案之一作为正确答案
    猜你喜欢
    • 2021-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-12
    • 2021-09-23
    • 2021-09-10
    • 2012-09-09
    • 1970-01-01
    相关资源
    最近更新 更多