楼主: Zhln1007
247 2

[编程问题求助] stata 14中help merge 文档中的assert错误修正 [推广有奖]

  • 0关注
  • 0粉丝

大专生

31%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
44.1125
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1714 点
帖子
30
精华
0
在线时间
47 小时
注册时间
2021-10-4
最后登录
2024-4-21

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如图,小伙伴们注意在stata 14 中 对于Help merge文档中,options中assert的用法,我画红线这里是有问题的,应该是not allow 而不是allow

一些名词解释:

主数据集:现在使用的数据集,原本的基底数据集

使用数据集:想要合并过来的数据集,外来的数据集



这里的意思是(核心是最后一句话) :使用 assert(match master) 指定合并文件必须仅包含 匹配的  主数据集观测值或使用数据集中的观测值  和   未匹配的主数据集观察结果,并且不得包含未匹配的使用数据集中的观察结果。指定 assert() 会导致合并操作时,在您允许的观察结果中存在匹配结果时会出现错误(报错)。

最后一句话应该的意思是:指定 assert() 会导致合并操作时,在您未明确允许的匹配结果存在时,发出错误消息。

这里的区别就是到底是allow还是not allow

我还一直在纳闷,都允许的条件下存在匹配结果了,您还给人家报错?

原来就是stata 14 版本的help文档错了

官网最新的help文档可以佐证我的看法,如图:



怎么理解呢:help 一下assert 发现在merge 中 assert是一个检验器,就是检验要进行操作的数据是否符合它所指定的条件,假如不符合就不会进行merge操作;

举个例子 比如本来文件1 是id 1 2 3 总共3行 后面是姓名 a b c ,文件2 是id 1 2 两行 后面是成绩 x y 。这个时候假如merge ……assert(match)  ,这里match条件的意思是两边的id都得是匹配得上的,不会出现一边有一边没有的情况,但是这里出现了在文件1有id 3 文件2 没有 。因为merge本身这个命令呢不会把id3 的那一行给删除,此时“存在未允许的匹配结果,就会出现错误”,所以此时就会报错,所以就不会发生匹配。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/m0_57202121/article/details/136948175

二维码

扫码加我 拉你入群

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

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

关键词:assert Stata Merge Help tata stata

2.png (184.39 KB)

2.png

1.png (140.02 KB)

1.png

沙发
sunnyzhxg 发表于 2024-3-24 10:20:43 |只看作者 |坛友微信交流群
谢谢分享!

使用道具

藤椅
512661101 发表于 2024-3-24 10:22:24 |只看作者 |坛友微信交流群
谢谢分享!

使用道具

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

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

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

GMT+8, 2024-4-30 19:00