全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
1774 7
2015-11-25
请教各位大神,我有18个变量,现在想做的事情是:对于每一次观测,如果这18个变量中有十个以上的值都是0,那么这条观测就删掉。请问stata中如何实现呢?不胜感激!
二维码

扫码加我 拉你入群

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

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

全部回复
2015-11-25 18:26:41
这个在R语言里很简单
比如你的矩阵是x
那么直接用:
复制代码

就可以保留出当行小于10个0的记录了
二维码

扫码加我 拉你入群

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

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

2015-11-25 22:23:44
jiangbeilu 发表于 2015-11-25 18:26
这个在R语言里很简单
比如你的矩阵是x
那么直接用:
啊哈,谢谢。我可以去试试
二维码

扫码加我 拉你入群

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

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

2015-11-25 23:37:39
用egen ct=rowmiss(x1 x2 x3)这样的就能求出x1 x2 x3中每行的缺失个数。
rowmiss(varlist)
            may not be combined with by.  It gives the number of missing values in varlist for each observation (row).
二维码

扫码加我 拉你入群

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

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

2015-11-26 00:21:14
如果你确实想找到的是等于0,而非missing, 是超过10个等于0,而非10个missing值的话,那么用egen 里的rowmiss函数是不合适的,尤其是当你的变量里面既有missing,又有0时,这时rowmiss只count missing values, 而不是0的个数。所以,基于此,我建议你最好选用egen里面的anycount命令,它会帮你计算里面有多少个任何你指定的值。具体命令如下:
egen x=anycount(var1-var18),v(0)
drop if x>=10

命令行1是生成一个新变量x, 它计算从var1-var18中究竟有几个0,然后,再drop掉那些有超过10个等于0的就可以了。
二维码

扫码加我 拉你入群

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

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

2015-11-26 01:09:04
楼上方法好一些,生成一个新变量表示每行0的个数
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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