在 Stata 中没有标识符的情况下将数据从长重塑为宽

Reshape Data from Long to Wide without identifier in Stata

如何在 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。但是,这并不能唯一标识每组重复数据。

您说得对,您需要一个标识符,实际上是两个标识符。但是 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 |
     +------------------------------------+