想要复制列并在下面插入n次

时间:2017-06-13 16:18:01

标签: events stata

我有一个如下所示的数据集:

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。有没有办法比重命名和复制粘贴更快?

1 个答案:

答案 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 |
     +--------------------------+

如果这不回答问题,您可能需要回过头来举一个更具体的例子。 (不要抽象;显示真实的细节。)