将观察从ID改为ID年对

时间:2018-03-18 06:14:49

标签: stata

我有这个数据

ID    A1  A2 B1 B2  C
1     0   1  2   3  4
2     5   6  7   8  9

此处,A1表示第1年的A,A2表示第2年的A.同样适用于B.

我想创建一个数据,其中每一行都是ID-year对,而不仅仅是ID。

像这样:

ID  year  A  B  C
 1   1    0  2  4
 1   2    1  3  4
 2   1    5  7  9
 2   2    6  8  9

幸运的是,A和B的年数相同。

老实说,我被困住了,我只能创建所需的数据结构并手动复制和粘贴东西。但数据太大,无法手动完成。

我应该怎么做?

编辑:

变量的名称应如下所示:

ID    A00  A01 B00 B01  C
1     0   1  2   3  4
2     5   6  7   8  9

1 个答案:

答案 0 :(得分:1)

请参阅reshape命令的帮助。这是一个reshape long问题。

clear 
input ID    A1  A2 B1 B2  C
1     0   1  2   3  4
2     5   6  7   8  9
end 

reshape long A B , i(ID) j(Year) 

list, sepby(ID) 

     +-----------------------+
     | ID   Year   A   B   C |
     |-----------------------|
  1. |  1      1   0   2   4 |
  2. |  1      2   1   3   4 |
     |-----------------------|
  3. |  2      1   5   7   9 |
  4. |  2      2   6   8   9 |
     +-----------------------+