我有一个如下所示的数据集:
Date | a (1) | a (2) | a (3) | b (1) | b (2) | b (3) | c (1) ...
我希望拥有的是:
Date | ID | 1 | 2 | 3
ID: a, b, c
因此,我必须将日期n(此处:3,即a,b,c)复制并粘贴到彼此之下,以覆盖所有ID。有没有办法比重命名和复制粘贴更快?
答案 0 :(得分:0)
这不是很清楚。如果您有Stata数据集,则应该能够显示实际变量名称和令牌数据示例。
这可能有所帮助:
clear
input Date a1 a2 a3 b1 b2 b3 c1 c2 c3
2016 1 2 3 4 5 6 7 8 9
end
rename a* ya*
rename b* yb*
rename c* yc*
reshape long ya yb yc, i(Date) j(which)
reshape long y, i(Date which) j(Id) string
reshape wide y, i(Date Id) j(which)
l
+--------------------------+
| Date Id y1 y2 y3 |
|--------------------------|
1. | 2016 a 1 2 3 |
2. | 2016 b 4 5 6 |
3. | 2016 c 7 8 9 |
+--------------------------+
编辑:
这更容易:
clear
input Date a1 a2 a3 b1 b2 b3 c1 c2 c3
2016 1 2 3 4 5 6 7 8 9
end
rename *1 y1*
rename *2 y2*
rename *3 y3*
reshape long y1 y2 y3, i(Date) j(Id) string
list
+--------------------------+
| Date Id y1 y2 y3 |
|--------------------------|
1. | 2016 a 1 2 3 |
2. | 2016 b 4 5 6 |
3. | 2016 c 7 8 9 |
+--------------------------+
如果这不回答问题,您可能需要回过头来举一个更具体的例子。 (不要抽象;显示真实的细节。)