2014-12-03 23 views
-1

我對R很新,需要一些任務幫助。我的數據幀DATA1看起來就像這樣:R - 根據id事件創建增量列

ID Action 
A1 A 
A1 E 
A2 B 
B1 A 
B2 C 
B2 D 
B2 A 
B3 E 

我需要創建一個新的列順序,其中增量基於ID,基本上告訴我,多久是beeing當時對這個ID執行的操作。對於一個新的ID會從1重新開始它看起來類似的東西:

ID Action Sequence 
A1 A  1 
A1 E  2 
A2 B  1 
B1 A  1 
B2 C  1 
B2 D  2 
B2 A  3 
B3 E  1 

我已經嘗試過尋找一個類似的問題,但可能只是找到解決方案,在不增加計數occurencies的數量。

這將是偉大的,如果你能幫我

在此先感謝!

回答

2

您可以使用getanIDsplitstackshape

library(splitstackshape) 
getanID(df, 'ID') 
#  ID Action .id 
#1: A1  A 1 
#2: A1  E 2 
#3: A2  B 1 
#4: B1  A 1 
#5: B2  C 1 
#6: B2  D 2 
#7: B2  A 3 
#8: B3  E 1 

或者avebase R

transform(df, Sequence=ave(seq_along(ID), ID, FUN=seq_along)) 
# ID Action Sequence 
#1 A1  A  1 
#2 A1  E  2 
#3 A2  B  1 
#4 B1  A  1 
#5 B2  C  1 
#6 B2  D  2 
#7 B2  A  3 
#8 B3  E  1 
+0

非常感謝!那正是我期待的! – user1584400 2014-12-03 12:16:24