楼主: page07
6550 10

[一般统计问题] stata的return list 问题 [推广有奖]

11
优雅的胖子 在职认证  学生认证  发表于 2023-5-5 13:15:07
根据你提供的截图:
1. pctile这一行没问题
2.return list这一行也没有问题
3. egen这一行也没有问题,能够顺利调用return list种的值
4. drop ra这一行命令有问题,因为你上面执行了egen命令,return list中的输出结果因为egen的执行已经发生了彻头彻尾的变化,所以drop这一行命令已经无法识别什么r(r9)是什么东西

最后,还是告诉大家,return list中的值都是临时性的,你根本无法判断它什么时候会发生变化,所以,切忌,千万不要直接去调用return list的值,最好的方法是你直接把需要调用的return list中的值直接写在纸上,需要用到的时候直接输入你记下来的值。

接下来我再举一个平常大家都会遇到的问题,这个问题有时候你根本发现不了:
我们在进行截尾处理时,经常会用到:
_pctile a, percentile(1 99)   //计算出变量a的第1百分位值和第99百分位值,即2%水平上截尾处理,stata界面不显示结果,而是存在return list
return list    //查看上述命令的结果
drop if a<r(r1)   //这个命令没问题,因为它直接承接着上面的return list ,关键是执行完这个命令,return list 已经发生了彻底的变化

如果你继续用
drop if a>r(r2)  
那么不好意思了,这就错了,因为你执行完drop if a<r(r1),return list已经发生变化了,这时候会遇到两种结果,一是命令报错,另一种是它不报错并直接执行下去,但是drop掉的并不是你想要的结果,这个错误很隐蔽,你发现不了的话意味着截尾过程出错了。

所以,最好的方式就是return list完,把需要的数据记在纸上,drop过程中直接输入对应的数字,而不是采用r(r1) r(r2)直接调用。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-22 16:12