2016-11-12 110 views
0

說我有以下數據幀:分配連續的ID,以連續的分組數據

$Name  $Question 
Bob  1 
Bob  2 ---> Same Bob as above 
Amy  1 
Amy  2 
Bob  1 ---> A different Bob than above, but shares the same name 
Bob  2 

因此,在短期,名字可以出現多次,但只有連續的名稱值(最多問題的最大數目)與相同的唯一標識符(ID)相關聯。例如,我想創建此列:

$Name  $Question $ID 
Bob  1   1 
Bob  2   1 
Amy  1   2 
Amy  2   2 
Bob  1   3 
Bob  2   3 

問題總是會有相同的順序。即獨特的人都會有問題1和問題2

的JANK方法可以讓我覺得這樣做是在dplyr像

d$ID = rep(seq(1, number_unique_people), max_question_number) 

分組,然後使用nrow不起作用,因爲所有的鮑勃值將被分組一起。

任何想法?

回答

1

事實證明,這非常簡單。

library(data.table) 
d$ID = rleid(d$Name) 

感謝Rich Scriven以上評論!