楼主: page07
6549 10

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

  • 0关注
  • 0粉丝

已卖:1份资源

大专生

6%

还不是VIP/贵宾

-

威望
0
论坛币
210 个
通用积分
1.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
322 点
帖子
10
精华
0
在线时间
61 小时
注册时间
2018-4-17
最后登录
2021-5-30

楼主
page07 发表于 2019-8-5 19:26:22 |AI写论文
10论坛币
求教return list的各个值如何作为条件使用

如图所示,我取分位点之后,如果直接按条件生成均值,那么得到的值全部都为 .
如果drop 则出现语法错误
62ZJ23JY{]B75HZQZTL_V.png

最佳答案

关键词:RETURN Stata list tata turn

沙发
蓝色 发表于 2019-8-5 19:26:23
  1. clear
  2. set obs 1000
  3. gen ra = uniform()                 

  4. pctile x=ra, nq(10) gen(y)
  5. return list
  6. scalar r9=r(r9)

  7. egen a=mean(ra)  if ra>=r9

  8. drop  if ra>=r9
复制代码

藤椅
arikjin 在职认证  发表于 2019-8-6 16:47:34
你的x只有最初的9行记录有数据(你可以点开数据库检查),其余数据都是missing value,而你在egen里面设置了if语句并要求在ra大于90分位数的记录中执行egen命令,但满足你这个条件的记录里面对应的x变量的值都是missing value,所以你这条命令得到的a的值全部是missing value。同时,一旦执行了egen命令,原来的pctile命令后的return list里面的scalar都被清掉了,所以你再egen命令后执行drop命令会说你语法错误。

板凳
page07 发表于 2019-8-6 20:59:29
arikjin 发表于 2019-8-6 16:47
你的x只有最初的9行记录有数据(你可以点开数据库检查),其余数据都是missing value,而你在egen里面设置了 ...
懂了。
那我如何使用这个分位数的条件呢

报纸
蓝色 发表于 2019-8-6 21:02:09
看drop命令有你那样的写法吗?不要想当然写命令,要看帮助里面的规则和语法 drop1.png

地板
page07 发表于 2019-8-6 21:43:52
蓝色 发表于 2019-8-6 21:02
看drop命令有你那样的写法吗?不要想当然写命令,要看帮助里面的规则和语法
对,我知道drop写错了。
主要现在想用上面那个r()的条件,想知道怎么用

7
arikjin 在职认证  发表于 2019-8-7 06:52:09 来自手机
page07 发表于 2019-8-6 20:59
懂了。
那我如何使用这个分位数的条件呢
不是如何使用的问题,而是你到底要计算什么的问题。先抛开if设置的条件,根据你目前的命令来看,x是基于ra计算出来的9个分位数,你对这9个数字求均值有何意义?

8
arikjin 在职认证  发表于 2019-8-7 06:53:09 来自手机
page07 发表于 2019-8-6 20:59
懂了。
那我如何使用这个分位数的条件呢
不是如何使用的问题,而是你到底要计算什么的问题。先抛开if设置的条件,根据你目前的命令来看,x是基于ra计算出来的9个分位数,你对这9个数字求均值有何意义?

9
page07 发表于 2019-8-7 10:12:19
蓝色 发表于 2019-8-7 09:23
谢谢,就是这个。
会了。

还有一个问题是,当我用 drop if ra>=r(r9) 这不会出错。
为什么用生成均值的时候,要加scalar呢

10
arikjin 在职认证  发表于 2019-8-7 20:59:42
蓝色 发表于 2019-8-5 19:26
所以egen那步应该是对ra取均值,而不是对x取均值。
但随后楼主又把生成的有数值的a的记录都drop掉,这是什么操作。。。匪夷所思。。。

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

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