我有关于按某种顺序发生的一组事件的数据.我想要一个枚举该事件集的列:这行是第一次,这行是第二次等.数据将如下所示:
S Time
A 3
A 4
A 5
A 10
B 4
B 9
B 1
B 37
Run Code Online (Sandbox Code Playgroud)
其中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
Run Code Online (Sandbox Code Playgroud)
对于每个会话ID,我希望有一个列,根据时间对行进行排序.我正在使用dplyr,我希望有一个简洁的dplyr方式来做到这一点.
尝试
library(dplyr)
df1 %>%
group_by(S) %>%
mutate(Order=rank(Time))
Run Code Online (Sandbox Code Playgroud)
你也可以这样做:
df %>% group_by(S) %>% mutate(Order = row_number(Time))
Run Code Online (Sandbox Code Playgroud)
在dplyr包中,row_number()相当于rank(ties.method = "first")