将面板拆分为子面板

时间:2016-05-12 13:08:49

标签: split panel stata

我在Stata中有一个面板数据集,它有行业和年份维度以及其他7个变量。我想通过行业年组合将此面板拆分为子面板,然后使用mahascore mahapick.ado包中的firm_id year ind_id var1 var2 var3 var4 var5 var6 var 7 1 2008 1 1 2 3 4 5 6 7 1 2009 1 1 2 3 4 5 6 7 1 2010 1 1 2 3 4 5 6 7 ................................................................. 2 2008 2000 1 2 3 4 5 6 7 2 2009 2000 1 2 3 4 5 6 7 2 2010 2000 1 2 3 4 5 6 7 ............................................................... 来计算新变量。 这是数据样本的结构(varlist的数字不是真实的,在我的数据集中它们只是一些数值变量):

mahascore

对于这些变量中的每一个,我想生成72个新变量(9个行业* 8年),因此缺少不属于行业年组合的每个变量的所有值。比我想要生成72个变量列表,我将用它来分别计算每个行业年组合的*Generate 504 variables(8 years*9 industries * 7variables): forvalues i = 2008/2015 { forvalues z = 1/9000 { gen var1_`i'_`z'=var1 if year == `i' & ind_id == `z' gen var2_`i'_`z'=var2 if year == `i' & ind_id == `z' gen var3_`i'_`z'=var3 if year == `i' & ind_id == `z' gen var4_`i'_`z'=var4 if year == `i' & ind_id == `z' gen var5_`i'_`z'=var5 if year == `i' & ind_id == `z' gen var6_`i'_`z'=var6 if year == `i' & ind_id == `z' gen var7_`i'_`z'=var7 if year == `i' & ind_id == `z' } } *Create 72 varlists (with 7 variables for each year-industry combination): global varlist1 var1_2008_1 var2_2008_1 var3_2008_1 var4_2008_1 var5_2008_1 var6_2008_1 var7_2008_1 global varlist2 var1_2009_1 var2_2009_1 var3_2009_1 var4_2009_1 var5_2009_1 var6_2009_1 var7_2009_1 .................................................................... *Create list of lists global metavarlist varlist1 varlist2...varlist72 *Calculate distance foreach v in $metavarlist { mahascore `v', gen(dist_M_`v') refmeans compute (马哈拉诺比斯距离)。行业ID(ind_ids)采用以下值{1 2000 3000 4000 5000 6000 7000 8000 9000}。这段时间跨度从2008年到2015年。

我写的代码是错误的,但我希望它有助于理解我在做什么:

body,p {color:red;}

也许有人可以在这里改进我​​的逻辑。

1 个答案:

答案 0 :(得分:0)

太长了以适应评论的空间:

问题报告的全部内容是代码“错误”。对于那些无法对您的数据进行尝试(无法访问)的人来说,这意味着什么?除非你提供样本数据,意味着一个适度大小的完整数据集,并且用它的术语一致地重写问题,否则我看不出你的问题对其他任何人都有意义。

在这种情况下,由于经验丰富的Stata程序员使用这个用户编写的程序包的数量确实非常小,这种情况更加复杂。请注意,您之前的帖子没有收到任何答案,可能是出于类似的原因。

到目前为止,如此负面。

但我可以说你的开放双循环将创建 72000个新变量,即使它们中的大多数都是缺失值。不知何故,你知道你有9个行业,为什么你要循环1/9000?在不同的地方,你说你想要

72个新变量

72 * 7个新变量

这些可能在某种程度上是一致的,但我不知道如何。

第二个代码块未完成。