0

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

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 |
   +--------------------------------------------------+

这对我来说似乎很奇怪。我预计崩溃或分歧。这是一个错误还是我错过了什么?

4

1 回答 1

3

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

如果您merge在最新的 Stata 中使用官方,您将得到您所期望的。

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

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

于 2012-11-15T12:14:26.403 回答