2016-11-12 74 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以上评论!