当有两个i标识符和一个t时间时填充面板

时间:2014-08-08 13:07:13

标签: stata

我的面板数据包含两个单独的标识符和一个时间标识符(日历年)。每个year都有不同的个人组合,我将其称为gymteacher。我在下面提供玩具数据。

我想填写数据,以便每个year我拥有当年其他地方存在的gymteacher的所有组合。也就是说,如果gym中存在teacheryear,我希望将它们作为新组合包含在面板中。然后我将用{0}填充他们的classes变量。

如果我egen group()这两个标识符,我可以创建一个组合标识gt,允许我xtset并使用tsfill, full来完成面板。再次,下面的代码。

我的问题是,如果健身房和老师永远不在一起,那么他们就不是gt的一部分,也不会被填满。我不确定解决方案是什么。有没有办法生成gymteacher以及xtsettsfill的每个组合?还是一个更好的方法?谢谢。

clear
input gym teacher year classes
1   1   2001    1
1   2   2001    1
1   3   2001    1
2   1   2001    1
2   2   2001    1 
1   1   2002    1
1   2   2002    1
2   1   2002    1   
2   2   2002    1
2   3   2002    1
1   1   2003    1
1   2   2003    1
3   1   2003    1
end

* one option, `tsfill, full`
egen gt = group(gym teacher)
xtset gt year
tsfill, full

/* fill missing gyms, teachers, classes */
bysort gt (gym): replace gym = gym[1] if missing(gym)
bysort gt (teacher): replace teacher = teacher[1] if missing(teacher)
bysort gym year: egen N = count(classes)
drop if (N == 0)
drop N
bysort teacher year: egen N = count(classes)
drop if (N == 0)
drop N

/* gym 1 should exist all 3 years */
/* gym 2 should exist 2001 and 2002 */
/* gym 3 should exist 2003, only */
/* all teachers in 2001 and 2002 */
/* teachers 1 and 2, only, in 2003 */
table gym teacher year

/* I'm missing gym 3, teacher 2 combination, because they don't exist any where in the sample, but they could have existed. */

2 个答案:

答案 0 :(得分:1)

结帐fillin。除了通常的文档之外,还可以在this Stata Journal Tip

中访问繁琐的介绍

答案 1 :(得分:0)

@NickCox在上面的评论中是正确的。此功能在Stata中作为fillin命令存在。在我fillingymteacheryear之后bysort组合,以确保gymteacher存在在同一year的其他地方。如果他们在那一年不存在,那么我放弃那个组合。

fillin gym teacher year
bysort gym year: egen N1 = count(classes)
bysort teacher year: egen N2 = count(classes)
drop if (N1 == 0) | (N2 == 0)
table gym teacher year

产量的影响。

. table gym teacher year

--------------------------------------------------------------------
          |                     year and teacher                    
          | ----- 2001 -----    ----- 2002 -----    ----- 2003 -----
      gym |    1     2     3       1     2     3       1     2     3
----------+---------------------------------------------------------
        1 |    1     1     1       1     1     1       1     1      
        2 |    1     1     1       1     1     1                    
        3 |                                            1     1      
--------------------------------------------------------------------