创建列以枚举一组事件

时间:2015-04-28 18:52:29

标签: r plyr dplyr

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

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而我希望采用简洁的方式来做到这一点。

2 个答案:

答案 0 :(得分:7)

尝试

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

答案 1 :(得分:5)

你也可以这样做:

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

dplyr包中,row_number()相当于rank(ties.method = "first")