楼主: stata折磨王
671 4

[编程问题求助] 根据缺失值批量删除同一条件的样本 [推广有奖]

  • 0关注
  • 0粉丝

初中生

19%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
227 点
帖子
4
精华
0
在线时间
18 小时
注册时间
2022-4-22
最后登录
2022-6-20

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
* Example generated by -dataex-. To install: ssc install dataex
clear
input str4 name int(year score)
"A" 2010 1
"B" 2010 .
"C" 2010 1
"A" 2011 3
"B" 2011 2
"C" 2011 2
"A" 2012 .
"B" 2012 1
"C" 2012 3
end

麻烦问下大家 怎么把score里面有缺失值的观测筛选出来,再删除与该观测同name的观测。例如,第二条观测 缺失score,它的name是B, 然后想删除所有name是B的观测。

以上代码最后的理想结果应该给是只留下name是C的观测。

麻烦问下大家怎么实现

二维码

扫码加我 拉你入群

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

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

关键词:缺失值 generated generate install example stata数据处理 Stata专版 Stata16

回帖推荐

黃河泉 发表于2楼  查看完整内容

试试
沙发
黃河泉 在职认证  发表于 2022-4-22 11:08:07 |只看作者 |坛友微信交流群
试试
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str4 name int(year score)
  4. "A" 2010 1
  5. "B" 2010 .
  6. "C" 2010 1
  7. "A" 2011 3
  8. "B" 2011 2
  9. "C" 2011 2
  10. "A" 2012 .
  11. "B" 2012 1
  12. "C" 2012 3
  13. end

  14. bys name (year): egen d = total(score==.)
  15. drop if d > 0
复制代码

使用道具

藤椅
stata折磨王 发表于 2022-4-22 11:49:40 |只看作者 |坛友微信交流群
黃河泉 发表于 2022-4-22 11:08
试试
感谢老师。其实我看过老师17年的一个回复,但没能举一反三
* Example generated by -dataex-. To install: ssc install dataex
clear
input float(hhid p a3000 a3020)
1 1 1    .
1 2 1 3000
1 3 1 4100
2 1 1 6000
2 2 2    .
end

bys hhid (p): egen c1 = total(a3000 == 1)
bys hhid (p): egen c2 = total(a3020 < .)
drop if c1 != c2

使用道具

板凳
黃河泉 在职认证  发表于 2022-4-23 08:42:32 |只看作者 |坛友微信交流群
stata折磨王 发表于 2022-4-22 11:49
感谢老师。其实我看过老师17年的一个回复,但没能举一反三
* Example generated by -dataex-. To  ...
所以你的问题是?

使用道具

报纸
stata折磨王 发表于 2022-4-23 12:00:20 |只看作者 |坛友微信交流群
已经解答完了。谢谢老师。 第二次的代码是以前类似问题您给出的解答。

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-21 08:45