我有一个包含8个变量和大约350,000个观察值的大型.csv文件。在此文件中,每个实际观察实际上分为105行。也就是说,每行具有针对一个特定人口统计的数据,并且存在105个人口统计切割(均与同一事件相关)。这使得将此文件与其他文件合并非常困难。
我想更改它,以便有3,500个带有变量的观察结果用于人口统计。我试过创建一个宏,但我没有多少运气。
This is what it looks like now.
This is what I'd like it to look like.
这样,每个ID都是一个独特的观察。我认为这将使它更容易使用。我可以使用Stata或Excel。这样做的最佳方式是什么?
答案 0 :(得分:1)
所以这是一个我理解你想要的例子:
clear all
set more off
*----- example data -----
input id store date cut
1 5 1 1
1 5 1 2
2 8 1 1
2 9 1 2
2 8 2 3
end
format date %td
set seed 012385
gen val1 = floor(runiform()*1000)
gen val2 = floor(runiform()*2000)
list, sepby(id)
*----- what you want ? -----
reshape wide val1 val2, i(id store date) j(cut)
list, sepby(id)
我的id
变量是数字,cut
也是如此(请参阅help destring
和help encode
进行转换)。示例数据也比您发布的数据复杂一些(如果您的示例不够具有代表性)。
预期结果的缺失(.
)。 val11
应被解释为val1
的{{1}}。 cut == 1
为val21
val2
。 cut == 1
为val12
val1
,依此类推。因此,当cut == 2
,id == 1
和val13
丢失时,由于此人未与val23
一起显示。
我希望您能够清楚地了解您的数据。