楼主: auv
19866 22

[数据管理求助] stata如何选择性删除缺失变量 [推广有奖]

  • 15关注
  • 1粉丝

副教授

29%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0.5723
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
8668 点
帖子
273
精华
0
在线时间
1219 小时
注册时间
2009-5-7
最后登录
2025-8-30

楼主
auv 发表于 2013-10-23 00:08:45 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
stata dta 文件中有多列数据。如果某一列变量的缺失值数目超过50%,或者个数大于100个,就删去该列数据,在stata中如何实现?

谢谢!!
二维码

扫码加我 拉你入群

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

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

关键词:Stata 缺失变量 tata 选择性 如何实现 选择性 如何

回帖推荐

ywh19860616 发表于7楼  查看完整内容

cd "E:\ff" local files : dir . files "*.dta" foreach f of local files { use `f', clear renvars,subs(end ) local cnt = substr(`"`f'"', 1, 1) save `cnt'.dta,replace }

ywh19860616 发表于5楼  查看完整内容

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/

ywh19860616 发表于2楼  查看完整内容

foreach var of varlist var1 var2 { misstable sum `var' if r(N_eq_dot) > 100 drop `var' }

本帖被以下文库推荐

沙发
ywh19860616 发表于 2013-10-23 10:39:30
foreach var of varlist var1 var2 {
  misstable sum `var'
  if r(N_eq_dot) > 100 drop `var'
}
已有 3 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
txd2011又来了 + 1 + 1 + 1 + 1 精彩帖子
日新少年 + 1 + 1 + 1 精彩帖子
nkczxx + 1 + 1 + 1 热心帮助其他会员

总评分: 论坛币 + 1  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

一份耕耘,一份收获。

藤椅
auv 发表于 2013-10-23 21:45:23
多谢!!第一次知道还有这个函数,谢谢!!

板凳
auv 发表于 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?

报纸
ywh19860616 发表于 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/
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
nkczxx + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

一份耕耘,一份收获。

地板
auv 发表于 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)?

7
ywh19860616 发表于 2013-10-24 21:49:28
cd "E:\ff"

local files : dir . files "*.dta"
foreach f of local files {
  use `f', clear
  renvars,subs(end )
  local cnt = substr(`"`f'"', 1, 1)
  save `cnt'.dta,replace
}
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
nkczxx + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

一份耕耘,一份收获。

8
auv 发表于 2013-10-24 23:52:57
ywh19860616 发表于 2013-10-24 21:49
cd "E:\ff"

local files : dir . files "*.dta"
亲自测试,完全可以!再次感谢您!

9
whmshufe 发表于 2013-10-26 12:11:23
学习了

10
无他 发表于 2013-11-13 11:00:52
学习备用吧
大方无隅

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-10 05:34