创建一个列来枚举一组事件

Creating a column to enumerate a set of events

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

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 方式来做到这一点。

尝试

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

你也可以这样做:

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

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