Stata mmerge update replace给出错误的输出

Stata mmerge update replace给出错误的输出,merge,stata,Merge,Stata,我想测试如果我用不同的数据类型替换变量会发生什么: clear input id x0 1 1 2 13 3 . end list save tabA, replace clear input id str5 x0 1 "1" 2 "23" 3 "33" end list save tabB, replace use tabA, clear mmerge id using tabB, type(1:1) update replace list 结果是: +--------

我想测试如果我用不同的数据类型替换变量会发生什么:

clear
input id x0
1  1
2  13
3  .
end
list
save tabA, replace

clear
input id str5 x0
1  "1"
2  "23"
3  "33"
end
list
save tabB, replace

use tabA, clear
mmerge id using tabB, type(1:1) update replace
list
结果是:

   +--------------------------------------------------+
   | id   x0                                   _merge |
   |--------------------------------------------------|
1. |  1    1   in both, master agrees with using data |
2. |  2   13   in both, master agrees with using data |
3. |  3    .   in both, master agrees with using data |
   +--------------------------------------------------+

这对我来说似乎很奇怪。我预料到崩溃或分歧。这是一个bug还是我遗漏了什么?

mmerge
是用户编写的(Jeroen Weese,SSC,2002)

如果您在最新状态中使用官方的
合并
,您将得到您期望的结果

. merge 1:1 id using tabB, update replace
x0 is str5 in using data
r(106);

我还没有看里面的
mmerge
。我自己的猜测是,从作者的角度来看,你所看到的是一个特性,即如果一个变量是数字,一个变量是字符串,只要它们的内容一致,这不是问题。但是为什么不直接使用
merge
?几年前有一个短暂的时期,
mmerge
merge
有一些优势,但那已经过去很久了。顺便说一句,我同意希望我的
merge
s非常保守,不喜欢变量类型

mmerge
是用户编写的(Jeroen Weese,SSC,2002)

如果您在最新状态中使用官方的
合并
,您将得到您期望的结果

. merge 1:1 id using tabB, update replace
x0 is str5 in using data
r(106);
我还没有看里面的
mmerge
。我自己的猜测是,从作者的角度来看,你所看到的是一个特性,即如果一个变量是数字,一个变量是字符串,只要它们的内容一致,这不是问题。但是为什么不直接使用
merge
?几年前有一个短暂的时期,
mmerge
merge
有一些优势,但那已经过去很久了。顺便说一句,我同意希望我的
merge
s非常保守,不喜欢变量类型