楼主: 木牛流马0
8564 6

[数据管理求助] stata删除重复数据 [推广有奖]

  • 2关注
  • 0粉丝

讲师

20%

还不是VIP/贵宾

-

威望
0
论坛币
2680 个
通用积分
140.0773
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2616 点
帖子
128
精华
0
在线时间
716 小时
注册时间
2016-7-17
最后登录
2025-11-17

楼主
木牛流马0 学生认证  发表于 2021-12-26 17:14:57 |AI写论文
10论坛币
数据如下:user变量存在重复,想要删除重复数据。删除规则是:1、假如存在clandholder3 =  city = wanted,则保留clandholder3 =  city = wanted那一行,比如数据中第五行和第六行的uesr重复,且第六行的clandholder3 =  city = wanted,则保留第六行删除第五行;2、假如不存在clandholder3 =  city = wanted,则简单删除user行重复即可。
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str98 user int year str12(clandholder3 city wanted)
  4. "北京汇源集团开封有限公司 "                                                             2007 "开封"       "开封"       "开封"      
  5. "北京汇源集团开封有限公司 "                                                             2007 "北京"       "开封"       "北京"      
  6. "赤峰市巴林右旗珠峰房地产开发有限责任公司 "                                     2009 "赤峰"       "赤峰"       "赤峰"      
  7. "赤峰市巴林右旗珠峰房地产开发有限责任公司 "                                     2009 "赤峰"       "赤峰"       "赤峰"      
  8. "德保县公安局消防大队"                                                                     2009 "荆州"       "百色"       "荆州"      
  9. "德保县公安局消防大队"                                                                     2009 "百色"       "百色"       "百色"      
  10. "昆明市土地开发投资经营有限责任公司 "                                              2011 "昆明"       "昆明"       "昆明"      
  11. "昆明市土地开发投资经营有限责任公司 "                                              2011 "昆明"       "昆明"       "昆明"      
  12. "昆明市土地开发投资经营有限责任公司 "                                              2011 "昆明"       "昆明"       "昆明"      
  13. "山西省烟草公司运城市公司芮城县卷烟营销部 "                                     2010 "运城"       "运城"       "运城"      
  14. "山西省烟草公司运城市公司芮城县卷烟营销部 "                                     2010 "运城"       "运城"       "运城"      
  15. "天津市茂联科技有限公司 "                                                                2010 "天津"       "天津"       "天津"      
  16. "天津市茂联科技有限公司 "                                                                2010 "常德"       "天津"       "常德"      
  17. "信丰县裕和农业发展有限公司 "                                                          2008 "徐州"       "赣州"       "徐州"      
  18. "信丰县裕和农业发展有限公司 "                                                          2008 "赣州"       "赣州"       "赣州"      
  19. "焉耆新泰房地产开发有限责任公司 "                                                    2010 "泰安"       "巴音郭楞" "泰安"      
  20. "焉耆新泰房地产开发有限责任公司 "                                                    2010 "巴音郭楞" "巴音郭楞" "巴音郭楞"
  21. "阳高县教育局"                                                                                 2009 "大同"       "大同"       "大同"      
  22. "阳高县教育局"                                                                                 2009 "宜宾"       "大同"       "大同"      
  23. "中国石油化工股份有限公司河北定州石油分公司 "                                  2008 "天津"       "保定"       "天津"      
  24. "中国石油化工股份有限公司河北定州石油分公司 "                                  2008 "保定"       "保定"       "保定"      
  25. "中国移动通信集团新疆有限公司克州阿合奇县营业部(国营马场) "          2009 "克孜勒苏" "克孜勒苏" "克孜勒苏"
  26. "中国移动通信集团新疆有限公司克州阿合奇县营业部(国营马场) "          2009 "克孜勒苏" "克孜勒苏" "克孜勒苏"
  27. "中国移动通信集团新疆有限公司克州阿合奇县营业部(色帕巴依乡基站) " 2009 "克孜勒苏" "克孜勒苏" "克孜勒苏"
  28. "中国移动通信集团新疆有限公司克州阿合奇县营业部(色帕巴依乡基站) " 2009 "克孜勒苏" "克孜勒苏" "克孜勒苏"
  29. "中国移动通信集团新疆有限公司克州阿合奇县营业部(吾曲镇) "             2009 "克孜勒苏" "克孜勒苏" "克孜勒苏"
  30. "中国移动通信集团新疆有限公司克州阿合奇县营业部(吾曲镇) "             2009 "克孜勒苏" "克孜勒苏" "克孜勒苏"
  31. "重庆市南川区教育委员会"                                                                  2017 "重庆"       "重庆"       "重庆"      
  32. "重庆市南川区教育委员会"                                                                  2017 "重庆"       "重庆"       "重庆"      
  33. end
复制代码

最佳答案

qianchen 查看完整内容

我猜测大概这样 gen d = (clandholder3==city)*(city==wanted) duplicates drop user year if d==1, force duplicates drop user year if d==0, force bys user:gen tag=_N drop if d==0& tag==2
关键词:Stata tata 重复数
已有 1 人评分经验 收起 理由
kychan + 80 精彩帖子

总评分: 经验 + 80   查看全部评分

努力做一个不断向上的科研人

沙发
qianchen 发表于 2021-12-26 17:14:58
我猜测大概这样
gen d = (clandholder3==city)*(city==wanted)
duplicates drop user year if d==1, force
duplicates drop user year if d==0, force
bys user:gen tag=_N
drop if d==0& tag==2

藤椅
黃河泉 在职认证  发表于 2021-12-26 18:02:01
不知有没误解你的问题,请试试
  1. gen d = (clandholder3==city)*(city==wanted)
  2. drop if d==0
  3. duplicates drop user year, force
复制代码

板凳
木牛流马0 学生认证  发表于 2021-12-26 18:27:28
黃河泉 发表于 2021-12-26 18:02
不知有没误解你的问题,请试试
黄老师您好,您提供的代码能解决我的假设1,但是我的数据可能还存在假设2:即n(n大于等于2)个user1重复,且不存在clandholder3 = city = wanted,那么您的代码前两行就会将我所有的user1都删除,我就会缺失user1的数据。希望您能再给点建议!

报纸
木牛流马0 学生认证  发表于 2021-12-26 20:30:46
qianchen 发表于 2021-12-26 19:51
我猜测大概这样
gen d = (clandholder3==city)*(city==wanted)
duplicates drop user year if d==1, for ...
是的,您的命令是符合我的要求的,谢谢!

地板
木牛流马0 学生认证  发表于 2021-12-26 20:30:50
qianchen 发表于 2021-12-26 19:51
我猜测大概这样
gen d = (clandholder3==city)*(city==wanted)
duplicates drop user year if d==1, for ...
是的,您的命令是符合我的要求的,谢谢!

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-22 05:49