如何在Stata中将长到宽的数据进行重塑?

如何在Stata中将长到宽的数据进行重塑?,stata,data-management,Stata,Data Management,我有以下数据: id tests testvalue 1 A 4 1 B 5 1 C 3 1 D 3 2 A 3 2 B 3 3 C 3 3 D 4 4 A 3 4 B

我有以下数据:

id      tests      testvalue
1       A           4
1       B           5
1       C           3
1       D           3 
2       A           3
2       B           3
3       C           3
3       D           4
4       A           3
4       B           5
4       A           1
4       B           3
我想将上面的长数据格式更改为以下宽数据格式

id      testA   testB    testC   testD   index
1       4      5        3         3        1
2       3      3        .         .        2
3       .      .        3         4        3
4       3      5        .         .        4
4       1      3        .         .        5
我正在努力

reshape wide testvalue, i(id) j(tests) 
它给出错误,因为
测试中没有唯一的值


这个问题的解决办法是什么

您需要创建一个额外的标识符来区分复制

clear 
input id  str1    tests      testvalue
1       A           4
1       B           5
1       C           3
1       D           3 
2       A           3
2       B           3
3       C           3
3       D           4
4       A           3
4       B           5
4       A           1
4       B           3
end 
bysort id tests: gen replicate = _n 
reshape wide testvalue, i(id replicate) j(tests) string 
有关文档,请参见