全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
19629 22
2013-10-23
stata dta 文件中有多列数据。如果某一列变量的缺失值数目超过50%,或者个数大于100个,就删去该列数据,在stata中如何实现?

谢谢!!
二维码

扫码加我 拉你入群

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

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

全部回复
2013-10-23 10:39:30
foreach var of varlist var1 var2 {
  misstable sum `var'
  if r(N_eq_dot) > 100 drop `var'
}
二维码

扫码加我 拉你入群

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

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

2013-10-23 21:45:23
多谢!!第一次知道还有这个函数,谢谢!!
二维码

扫码加我 拉你入群

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

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

2013-10-23 21:53:02
ywh19860616 发表于 2013-10-23 10:39
foreach var of varlist var1 var2 {
  misstable sum `var'
  if r(N_eq_dot) > 100 drop `var'
再问一个,可能更难做一些。如果现在只有一个变量var1,但是这个变量是面板数据的变量,dta文件已经排成了面板的样子(tsset id year过了),这个时候每一个id中var1的缺失值是不统一的,如何将内含缺失值数目大于5的id删除,而仅仅留下其他可用数据较多的id?
二维码

扫码加我 拉你入群

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

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

2013-10-23 23:00:25
auv 发表于 2013-10-23 21:53
再问一个,可能更难做一些。如果现在只有一个变量var1,但是这个变量是面板数据的变量,dta文件已经排成了 ...
gen missing = cond(missing(var1), 1, 0)
by country: gen nu=sum(missing)
by country:egen maxnu=max(nu)
by country:drop if maxnu>5

应该还有很多更简单的方法,这个网页你可以参考
http://www.stata.com/support/faq ... -of-missing-values/
二维码

扫码加我 拉你入群

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

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

2013-10-24 20:25:59
ywh19860616 发表于 2013-10-23 23:00
gen missing = cond(missing(var1), 1, 0)
by country: gen nu=sum(missing)
by country:egen maxn ...
非常感谢!今天好好看了看你发来的那个链接,真是太神奇了。我想再问您一个之前一直没获得回答的问题:
在同一个文件夹的多个dta文件中(比如有1.dta 2.dta 3.dta),其中表示时间的变量名不同(有的叫date,有的叫enddate,没有其他情况——这是从锐思数据库下载之后遇到的情况),如何统一将每个dta文件中表示时间的变量(date,或者enddate)名重命名为 time(从而方便后面merge)?

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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