全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
5289 3
2012-03-17
悬赏 15 个论坛币 已解决
数个变量求均值的问题,已解决。但是因为几个答案都很好,所以把论坛币分给另个最佳答案。

最佳答案

较拉峭 查看完整内容

如图所示:比如你的数据时这样的。暂时限定为是s1-s4,四个变量,多了也一样的。 egen b=anycount(s1-s4), values(0) egen c=rownonmiss(s1-s4) egen d=rowtotal(s1-s4) gen e=d/(c-b) 第一句,用egen首先生成一个数值变量,这个变量代表的是从s1-s4里面所有的等于0的值有多少个,比如code=1时,a就等于1,code=2时,a就等于0(因为code=2时,没有等于0的数)。 第二句,用egen命令在生成一个每一行里面没有缺失值的 ...
二维码

扫码加我 拉你入群

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

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

全部回复
2012-3-17 09:56:45
如图所示:比如你的数据时这样的。暂时限定为是s1-s4,四个变量,多了也一样的。   无标题.png

egen b=anycount(s1-s4), values(0)
egen c=rownonmiss(s1-s4)
egen  d=rowtotal(s1-s4)
gen e=d/(c-b)


第一句,用egen首先生成一个数值变量,这个变量代表的是从s1-s4里面所有的等于0的值有多少个,比如code=1时,a就等于1,code=2时,a就等于0(因为code=2时,没有等于0的数)。
第二句,用egen命令在生成一个每一行里面没有缺失值的变量的个数,这里你的数据里面都没有缺失值,所以b都等于4。
第三句,在生成,每一行的总和数,但是这个总和数计算的时候是包括零的。所以算均值的时候,要把每一行等于0的数减去。
就有第四句。
二维码

扫码加我 拉你入群

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

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

2012-3-18 04:24:46
How about this:

mvdecode _all, mv(0)
egen mean=rowmean(s1 s2 s3 s4)       //all set
二维码

扫码加我 拉你入群

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

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

2012-3-18 04:33:50
In case, you don't want to convert all variables' 0 to missing

mvdecode s1 s2 s3 s4, mv(0)
egen mean=rowmean(s1 s2 s3 s4)  
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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