我有这个数据
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
答案 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 |
+-----------------------+