【问题标题】:Creating a column to enumerate a set of events创建列以枚举一组事件
【发布时间】:2015-07-07 18:51:57
【问题描述】:

我有一组按某种顺序发生的事件的数据。我想要一列枚举该组事件:这一行是第一次,这一行是第二次等等。数据将如下所示:

S   Time
A     3
A     4
A     5
A     10
B     4
B     9
B     1
B     37

其中 S 是某种会话 ID,时间显然是时间。我希望添加以下结果列:

S   Time   Order
A     3      1
A     5      3
A     4      2
A     10     4
B     4      2
B     9      3
B     1      1
B     37     4

对于每个会话 ID,我希望有一列根据时间对行进行排序。我正在使用dplyr,我希望有一种简洁的 dplyr 方式来做到这一点。

【问题讨论】:

    标签: r plyr dplyr


    【解决方案1】:

    试试

     library(dplyr)
     df1 %>%
          group_by(S) %>% 
          mutate(Order=rank(Time))
    

    【讨论】:

      【解决方案2】:

      你也可以这样做:

      df %>% group_by(S) %>% mutate(Order = row_number(Time))
      

      dplyr 包中,row_number() 等价于rank(ties.method = "first")

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-06
        • 2011-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多