我觉得我在这里遗漏了一些非常基本的东西......
我正在尝试合并 Stata、FranceSQ.dta 和 FranceHQ.dta 中的两个数据集。它们都有一个我创建的名为“uid”的变量,用于唯一标识观察结果。
use FranceSQ, clear
merge 1:1 uid using FranceHQ, gen(_merge) keep(match)
现在让我感到困惑的是,它告诉我 uid 并不能唯一地识别我的观察结果。我意识到发生的事情是,当我打开 FranceSQ 时,一切正常,当我查看我的 uid 变量时,我有以下值......
25010201
25010202
25010203
...
但是一旦我尝试运行合并,它就会改变我所有的值,所以我看到......
2.50101e+10
2.50101e+10
2.50101e+10
...
任何帮助将不胜感激......我确信有一个简单的答案,但它目前正在躲避我。
***编辑** *
所以尼克的建议很有帮助,谢谢!这就是我做错了,所以我想知道是否有人可以指出为什么它不起作用。
1)我通过连接两个数值变量在每个数据集中创建了 uid 变量,这将 uid 变量转换为字符串。
2)我在整个数据集上运行了 destring(因为有很多不正确的转换变量),这将 uid 变成了一个 double。
3)然后我将 uid 重铸为字符串。正是由于这个原因,我无法进行初始合并。我注意到它将我的所有观察结果更改为数据集中的最后一个值。
4) 仅仅因为我在调整,我将 uid 变量重铸为双精度,并且得到了相同的结果。
现在我终于通过重新开始而不是首先将 uid 变量重新转换为字符串来让它工作,但我仍然不知道为什么我以前的努力没有奏效,或者合并命令实际上是如何决定的改变我的价值观。