我有一系列按某种顺序发生的事件的数据。我想要一个枚举该事件集的列:这行是第一次,这行是第二次等。数据将如下所示:
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
而我希望采用简洁的方式来做到这一点。
答案 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")