2015-04-28 72 views
5

我有一組事件的數據按某種順序發生。我想其列舉了一組事件列:此行是第一次,此行是第二次等數據將類似於以下內容:創建列來枚舉一組事件

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方式。

回答

7

嘗試

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

你也可以這樣做:

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

dplyr包,row_number()相當於rank(ties.method = "first")