全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
3244 11
2017-05-22
如题,待处理数据格式为year   i
                                     1     .
                                     2     .
                                     3     .
                                     1    4
                                     2    5
                                     3    7
                                     1    .
                                     2    .
                                     3    .
现在想让变量i的缺漏值替换成4 5 7   ,得到一个 457 457 457 的循环,由于原始数据这种变量很多,年份也更长,希望能有一个有效的命令来解决这个问题,谢谢大家~
二维码

扫码加我 拉你入群

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

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

全部回复
2017-5-23 08:49:51
我怀疑你的资料不具代表性,是不是应该有一个 id 之类的变量?
二维码

扫码加我 拉你入群

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

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

2017-5-23 09:45:20
试试
复制代码
二维码

扫码加我 拉你入群

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

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

2017-5-23 10:14:16
黃河泉 发表于 2017-5-23 08:49
我怀疑你的资料不具代表性,是不是应该有一个 id 之类的变量?
是的,确实有你所说的id变量,我没有展示出来,很抱歉,这就按你教的方法试一试~~
二维码

扫码加我 拉你入群

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

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

2017-5-23 11:21:47
黃河泉 发表于 2017-5-23 09:45
试试
没能实现,可能需要我把数据描述的更详细
group   id    year    i     s
1          1    2000    .    1
1          1    2001    .    2
1          1    2002    .    3
1          2    2000   4    .
1          2    2001   5    .
1          2    2002   7    .
1          3    2000    .    1
1          3    2001    .    2
1          3    2002    .    3
2          4    2000    0    .
2          4    2001    0    .
2          4    2002    1    .
2          5    2000     .    .
2          5    2001     .    .
2          5    2002     .    .
2          6    2000     .    .
2          6    2001     .    .
2          6    2002     .    .
我的目标是每个组内都实现这种填充,具体展示为
group   id    year    i     s
1          1    2000   4    1
1          1    2001   5    2
1          1    2002   7    3
1          2    2000   4    1
1          2    2001   5    2
1          2    2002   7    3
1          3    2000   4    1
1          3    2001   5    2
1          3    2002   7    3
2          4    2000    0    .
2          4    2001    0    .
2          4    2002    1    .
2          5    2000    0    .
2          5    2001    0    .
2          5    2002    1    .
2          6    2000    0    .
2          6    2001    0    .
2          6    2002    1    .
学习了黄老师的代码后,我写得命令为
bysort group year (i): assert missing(i) | i==i[1]  if _n >= 0
bysort group year (i): replace i = i[1]
sort group id year
但是在第一步报错
assertion is flase
老师您看应怎样改进?
二维码

扫码加我 拉你入群

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

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

2017-5-23 12:57:17
黃河泉 发表于 2017-5-23 09:45
试试
没能实现,可能是我数据描述的不够详细
group  id    year         i
1         1     2000       .
1         1     2001       .
1         1     2002       .
1         2     2000       4
1         2     2001       5
1         2     2002       7
1         3     2000       .
1         3     2001       .
1         3     2002       .
2         4     2000       0
2         4     2001       1
2         4     2002       2
2         5     2000       .
2         5     2001       .
2         5     2002       .
2         6     2000       0
2         6     2001       1
2         6     2002       2
3         7     2000       .
3         7     2001       .
3         7     2002       .
3         8     2000       .
3         8     2001       .
3         8     2002       .
我的目标是在每一group里实现填充缺漏(可能出现整组内 i 都是缺漏的情况),学习了老师的代码后,我写的命令是:bysort group year (i): assert missing(i) | i==i[1]  if _n >= 0
bysort group year (i): replace i = i[1]
sort group id year
但是stata报错:assertion is false
请问老师这种情况该如何纠错?
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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