全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
22234 20
2016-11-24
我的数据有10个省份变量province,每个省内样本量不一样多,现在我想对每个省内的个人收入变量income按照p20,p40,p60,p80分位数为截点分成5组,并生成变量rank,rank的值为1,2,3,4,5,请问怎么实现?另外,如果我想对每个省内按income大小等分成5组,应该怎么实现?
因为研究需要,自己摸索了许久没有实现,现求高人指点,在此感谢~~~
ps:我尝试用到了xtile,pctile,bysort等。。没实现。。
二维码

扫码加我 拉你入群

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

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

全部回复
2016-11-24 17:53:51
等分成5组
bys province: egen income2=cut(income), group(5)
二维码

扫码加我 拉你入群

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

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

2016-11-24 18:00:25
按分位数分组
先算出income最小值与最大值,如为a,b
gen income3=autocode(income,5,a,b)
二维码

扫码加我 拉你入群

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

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

2016-11-24 21:06:12
liuywustb 发表于 2016-11-24 17:53
等分成5组
bys province: egen income2=cut(income), group(5)
谢谢帮忙解答~
不过我按此运行,结果显示:egen ... cut() may not be combined with by
二维码

扫码加我 拉你入群

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

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

2016-11-24 21:07:24
liuywustb 发表于 2016-11-24 18:00
按分位数分组
先算出income最小值与最大值,如为a,b
gen income3=autocode(income,5,a,b)
按照此代码,返回值不是1-5
我尝试用累积分布函数实现了,不过效果可能和分位数还有些差别
bysort province : cumul income, g(g) eq
recode g (min/0.2=1)(0.2/0.4=2)(0.4/0.6=3)(0.6/0.8=4)(0.8/max=5)  
二维码

扫码加我 拉你入群

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

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

2016-12-1 11:55:08
如火如荼nr 发表于 2016-11-24 21:06
谢谢帮忙解答~
不过我按此运行,结果显示:egen ... cut() may not be combined with by
如果不能用by,那就对province用一个循环语句
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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