全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
1687 6
2010-02-25
如下例所示:1993年和1999年的panel data .
train(0 1变量,表示是否参加培训),我想得到train2,  它表示当1999年train=1时,则这个人(id)1993年的train也为1.这个在stata里怎么实现?谢谢!

例如:
id           wave        train        train2
32001    1993          0              1
32001    1999          1              1
32002     1993         0              1
32002    1999          1              1
32003    1993          0              0
32003    1999          0              0
......
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-2-25 08:23:16
寒武纪 发表于 2010-2-25 00:03 如下例所示:1993年和1999年的panel data .train(0 1变量,表示是否参加培训),我想得到train2,  它表示当1999年train=1时,则这个人(id)1993年的train也为1.这个在stata里怎么实现?
bys id (wave): g train2=train[2]*(train[2]==1)+train*(train[2]==0)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-2-25 08:25:28
需要说明一点:若1993年train=1,1999年train=0,则两年的train2各是什么?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-2-26 15:43:57
谢谢。我想得到参加培训对学生成绩的影响。这个命令是为了找出1999年参加培训的那些人,不管他在1993年是否参加培训,都把他们找出来作为比较对象。
我试验了一下,当为平衡数据时,上面的写法能得到正确的结果,如果不是平衡面板(例如只有2年中1年的数据),train2为缺失值(.)。请问如何修改上面的命令呢?另外,请教train[2]是什么含义?*是表示乘吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-2-26 19:33:28
寒武纪 发表于 2010-2-26 15:43 谢谢。我想得到参加培训对学生成绩的影响。这个命令是为了找出1999年参加培训的那些人,不管他在1993年是否参加培训,都把他们找出来作为比较对象。
*试一下
bys id: egen train2=sum(wave==1999&train==1)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-2-26 23:21:26
非常感谢,正确!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群