【问题标题】:Reshape Data from Long to Wide without identifier in Stata在Stata中没有标识符的情况下将数据从长整形到宽
【发布时间】:2021-09-25 22:34:12
【问题描述】:

如何在 Stata 中将下面的数据集从长到宽重塑?

a1      a2
NAME    Jane
SEX     female
PHONE   234
SCORE   9
NAME    John
SEX     male
PHONE   444
SCORE   10
NAME    Baba
SEX     male
PHONE   777
SCORE   5

我尝试使用gen i = tag(a1) 来生成一个ID。但是,这并不能唯一标识每组重复数据。

【问题讨论】:

    标签: database statistics stata reshape


    【解决方案1】:

    您是正确的,您需要一个标识符,实际上是两个标识符。但是gen i = tag(a1) 是非法的——大概你的意思是egen——而且更重要的是没有帮助。 egen, tag() 依赖于已经存在的标识符,仅用于创建 (0, 1) 变量,而不是您需要的。

    这对我有用。请注意使用 Stata 代码创建数据示例:在 Stata 标签 wiki 上有更多相关内容。

    clear 
    input str6 (a1      a2) 
    NAME    Jane
    SEX     female
    PHONE   234
    SCORE   9
    NAME    John
    SEX     male
    PHONE   444
    SCORE   10
    NAME    Baba
    SEX     male
    PHONE   777
    SCORE   5
    end 
    
    drop a1
    egen id = seq(), block(4)
    egen j = seq(), to(4)
    reshape wide a2, i(id) j(j)
    rename (a2*) (name sex phone score)
    destring, replace 
    
    list 
    
         +------------------------------------+
         | id   name      sex   phone   score |
         |------------------------------------|
      1. |  1   Jane   female     234       9 |
      2. |  2   John     male     444      10 |
      3. |  3   Baba     male     777       5 |
         +------------------------------------+
    

    【讨论】:

    • 这可能是对初出茅庐的 RA 的 Stata 测试,而我怀疑这是一个可怕的测试。
    猜你喜欢
    • 2021-12-14
    • 2016-05-02
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    • 2023-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多