【问题标题】:Generate Group ID with 2 conditions in Stata在Stata中生成具有2个条件的组ID
【发布时间】:2013-11-02 18:13:15
【问题描述】:

我需要每 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)

但这些都没有产生预期的结果。

站点标识 1 2 3 4 ... 62 1 2 3 4 ... 62 1 2 3 4 ... 62

等等

访问 3 3 3 3 ... 3 1 1 1 1 ... 1

等等。

【问题讨论】:

    标签: panel stata uniqueidentifier


    【解决方案1】:

    您只想将前 62 个观测值指定为 1,将接下来的 62 个观测值指定为 2,依此类推。这是由

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

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

    gen uniqueid = sum(siteid == 1) 
    

    达到同样的效果。每次siteid 为 1 时你得 1,得到 1 的块后跟 61 个零,它们从sum() 的累积总和然后是 1s、2s 等块。

    【讨论】:

    • 是的!抱歉——我在发布之前重写了 var 名称并忘记替换一个 var 名称,但你确实理解我,因为这正是我想要 STATA 做的。当我在这里输入时,我不知道如何让我的列显示为列——它们显示为行。因此,我尝试通过添加“行向量”来澄清。谢谢你的帮助!希望我编辑的帖子也可以帮助一些读者。
    • 如果您的问题得到解答,您可以接受该答案。您将因此获得一些声誉。
    猜你喜欢
    • 2023-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多