在Stata中生成具有2个条件的组ID

时间:2013-11-02 18:13:16

标签: panel stata uniqueidentifier

我需要每62个观察点为每个人分配一个唯一的ID。在下面的示例中,siteid从1到62且visits = 3的每一行都会引用人1,每行siteid从1到62且visits = 1会指人2等我试过

  egen newid=group(siteid visits) 

  by siteid: gen uniqueid = 1 if _n==1
  replace uniqueid = sum(uniqueid)

但这些都不会产生预期的结果。

siteid

1
2
3
4
...
62
1
2
3
4
...
62
1
2
3
4
...
62

等等

visits

3
3
3
3
...
3
1
1
1
1
...
1 

等等。

1 个答案:

答案 0 :(得分:1)

您只需要为前62个观察分配1,将下一个62分配为2,依此类推。这是由

完成的
egen uniqueid = seq(), block(62)

这里的重要细节是该命令不引用任何现有变量。他们的确切价值无关紧要。但你可以去

gen uniqueid = sum(siteid == 1) 

达到同样的效果。每次siteid为1时得分为1,得到1的块后跟61个零,而sum()的累计和则为1s,2s等的块。