全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
26572 8
2015-12-06

我欲实现这样一个stata操作:在各个“地区”中,按照“产品数量”从低到高分成五等份,并且相应赋值1-5,应该如何命令呢?
我自己想的程序如下:


sort area amount
forvalues area=1/28  {
xtile amount5q=amount,nquantile(5)
}


但是运行结果不对哦?~~~~~~(>_<)~~计量渣渣一枚,求大神指点,不胜感激!!


二维码

扫码加我 拉你入群

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

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

全部回复
2015-12-6 23:41:38
改成
forvalues area=1/28  {
    xtile amount5q=amount if area==`area',nquantile(5)
}
试试?

二维码

扫码加我 拉你入群

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

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

2015-12-7 12:37:47
夏目贵志 发表于 2015-12-6 23:41
改成
forvalues area=1/28  {
    xtile amount5q=amount if area==`area',nquantile(5)
十分感谢您的建议!我运行了一下,之前的问题还是存在,即每个地区并不是均匀的五等份,这个;另外,您的这个程序里,仅area==1时有数据,而地区2开始就没有了,原因大概是“amount5q”变量名已经被第一次循环中使用过了,这应该如何解决呢?求大神解答!
二维码

扫码加我 拉你入群

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

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

2015-12-7 22:50:24
dick50譁 发表于 2015-12-7 12:37
十分感谢您的建议!我运行了一下,之前的问题还是存在,即每个地区并不是均匀的五等份,这个;另外,您的 ...
cap drop amount5q
gen amount5q=.
forvalues area=1/28  {
    xtile amount5q`area'=amount if area==`area',nquantile(5)
}
forvalues area=1/28  {
    replace amount5q=amount5q`area' if area==`area'
    drop amount5q`area'
}
试试?
二维码

扫码加我 拉你入群

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

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

2015-12-8 15:58:39
夏目贵志 发表于 2015-12-7 22:50
cap drop amount5q
gen amount5q=.
forvalues area=1/28  {
十分感谢!运行的结果是:每个地区都并不是严格的五等份。如地区1,五组样本量分别为:  50、41、47、54、43。您觉得有没有可能是“nq”命令是按照最大最小值的差值来进行五等分的?所以每组的样本量并不是严格相等的?- - 如果是按照目前这个程序来进行分组的话,是否合理呢??谢~谢~


二维码

扫码加我 拉你入群

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

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

2015-12-9 22:30:59
dick50譁 发表于 2015-12-8 15:58
十分感谢!运行的结果是:每个地区都并不是严格的五等份。如地区1,五组样本量分别为:  50、41、47 ...
不是能分的问题的具体看你的数据。如果数据是1 2 2 2 2 3,必然无法三等分。所以一般来说不用非要追求等分的。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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