楼主: dazzlingpuck
4892 7

[数据管理求助] 如何利用stata将两个数据集中不一致的部分找出来 [推广有奖]

  • 1关注
  • 0粉丝

硕士生

98%

还不是VIP/贵宾

-

威望
0
论坛币
12 个
通用积分
16.0120
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
10832 点
帖子
34
精华
0
在线时间
384 小时
注册时间
2013-10-5
最后登录
2024-3-19

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
两个数据集"001"、"002"中都含有ID和areanbs这两个变量,理论上ID所对应的areanbs是固定的。我想把这两个数据集中ID不一致的部分(如"001"中的0102333、"002"中的0102061),以及ID与areanbs对应关系不一致的部分(如0102331)都找出来,能否在stata里实现?部分样本数据如下:
  1. clear
  2. input str10(ID areanbs)
  3. 0101041 Rural
  4. 0101042 Urban
  5. 0101043 Rural
  6. 0102331 Rural
  7. 0102332 Rural
  8. 0102333 Rural
  9. 0104461 Urban
  10. 0104462 Urban
  11. end
  12. save 001
  13. clear
  14. input str10(ID areanbs)
  15. 0101041 Rural
  16. 0101042 Urban
  17. 0101043 Rural
  18. 0102061 Rural
  19. 0102331 Urban
  20. 0102332 Rural
  21. 0104461 Urban
  22. 0104462 Urban
  23. end
  24. save 002
复制代码
二维码

扫码加我 拉你入群

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

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

关键词:Stata tata 数据集 Rural Urban

回帖推荐

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

请试试
沙发
wead456789 发表于 2017-12-6 22:37:23 |只看作者 |坛友微信交流群
将两个数据文件保存为1.dta,2.dta,然后打开任意一个数据文件
  1. merge 1:1 ID using 2.dta
  2. edit if _merge == 2
复制代码

或许可以使用merge指令试试,不能匹配上的应该就是有问题的

使用道具

藤椅
dazzlingpuck 发表于 2017-12-6 22:52:04 |只看作者 |坛友微信交流群
wead456789 发表于 2017-12-6 22:37
将两个数据文件保存为1.dta,2.dta,然后打开任意一个数据文件

或许可以使用merge指令试试,不能匹配上的 ...
谢谢,可是这样操作只能得到"001"有而"002"无,或"002"有而"001"无的观察值,不能得到ID与areanbs对应关系不一致的部分

使用道具

板凳
wead456789 发表于 2017-12-6 23:13:57 |只看作者 |坛友微信交流群
dazzlingpuck 发表于 2017-12-6 22:52
谢谢,可是这样操作只能得到"001"有而"002"无,或"002"有而"001"无的观察值,不能得到ID与areanbs对应关系 ...
不好意思,没有仔细看,关于重复出现相同观测值的问题,我是这么想的,还是使用1.dta,2.dta
  1. append using 2.dta
  2. duplicates tag ID, gen(Copies)
  3. edit if Copies!=0
复制代码
您试试这样可以吗?
已有 1 人评分热心指数 收起 理由
dazzlingpuck + 1 观点有启发

总评分: 热心指数 + 1   查看全部评分

使用道具

报纸
dazzlingpuck 发表于 2017-12-6 23:45:50 |只看作者 |坛友微信交流群
wead456789 发表于 2017-12-6 23:13
不好意思,没有仔细看,关于重复出现相同观测值的问题,我是这么想的,还是使用1.dta,2.dta您试试这样可以 ...
感谢!把第2行改成duplicates tag ID areanbs,gen(copies)就没问题啦

使用道具

地板
黃河泉 在职认证  发表于 2017-12-7 08:04:08 |只看作者 |坛友微信交流群
请试试
  1. clear
  2. input str10(ID areanbs)
  3. 0101041 Rural
  4. 0101042 Urban
  5. 0101043 Rural
  6. 0102331 Rural
  7. 0102332 Rural
  8. 0102333 Rural
  9. 0104461 Urban
  10. 0104462 Urban
  11. end
  12. tempfile a1
  13. save `a1'

  14. clear
  15. input str10(ID areanbs)
  16. 0101041 Rural
  17. 0101042 Urban
  18. 0101043 Rural
  19. 0102061 Rural
  20. 0102331 Urban
  21. 0102332 Rural
  22. 0104461 Urban
  23. 0104462 Urban
  24. end

  25. merge 1:1 ID using `a1', update
复制代码

使用道具

7
黃河泉 在职认证  发表于 2017-12-7 08:05:04 |只看作者 |坛友微信交流群
其中 _merge 等于 1,2 与 5 就是你要的!

使用道具

8
dazzlingpuck 发表于 2017-12-7 17:14:41 |只看作者 |坛友微信交流群
黃河泉 发表于 2017-12-7 08:05
其中 _merge 等于 1,2 与 5 就是你要的!
原来可以这么简洁,非常感谢!

使用道具

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

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

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

GMT+8, 2024-5-27 00:53