【问题标题】:How can I merge stacked, longitudinal datasets with string variable ID's in Stata?如何在 Stata 中将堆叠的纵向数据集与字符串变量 ID 合并?
【发布时间】:2015-06-12 14:00:29
【问题描述】:

我一直在尝试将我最初从 MS Excel 导入的三个 Stata 文件与 6 个字符的字符串 ID 代码(例如 n5fpeb)合并,但没有成功。它们在 Stata 数据文件中存储为 str6 变量。

我记录了一些其他变量,这些变量也可以识别每次观察 - 数字参与者 ID 和学校 ID 号,因为每个参与者都是学校学生。我的主数据集采用堆叠格式,因为我的数据是纵向的。当我尝试 1:m 合并(即merge 1:m id using "C:\Users ... May.dta", generate(_merge1))时,Stata 返回以下错误消息:variable id does not uniquely identify observations in the master data

我已阅读各种指南,但无法弄清楚为什么数据集不会合并。我可以使用错误的命令吗?或者字符串变量,或者多个字符串变量,让 Stata 感到困惑?我想学习如何干净利落地将未来的观察结果添加到我的主数据集中。

【问题讨论】:

  • 如果您的主文件对每个 ID 有多个观察值,而使用文件对每个 ID 有一个观察值,那么您需要 m:1 合并。
  • 您有 a question 待处理的明显反馈。查看this page,了解如何对 Stack Overflow 提供反馈。

标签: merge stata


【解决方案1】:

我会尝试解释错误

变量 id 不能唯一标识主数据中的观察结果

看看这个数据集

clear
input ///
id date metric
1 25 45
1 26 98
1 27 54
2 23 09
2 24 13
2 25 87
end

list, sepby(id)

正如您所说的那样,它是纵向(面板)数据。尽管我们有一个名为id 的变量,但这并不意味着该变量唯一地标识了观察。事实上,它没有。如果我要覆盖(比如用一张纸)datemetric 上的信息,您将无法根据变量 id 唯一地识别每个观察值;对于每个主题的所有三个观察结果,id 具有相同的值。

现在滑动你的纸,这样你就可以看到iddate。因为这两个变量的组合创建了唯一值对(即 1/25、1/26、1/27、2/23、...),所以 两个 变量加在一起可以唯一标识观察。请注意,merge 命令接受varlist,因此您可以指定多个变量。

Stata 在您的 merge 1:m id 中抱怨,它希望 id 能够唯一地识别观察结果,但事实并非如此。此外,它说问题出在 master 数据上,即当前加载的数据。

运行

duplicates report id
duplicates report id date

加载示例数据集后,单独使用 id 时会看到重复项,但 id date 没有重复项。

如果您提供具有代表性的示例数据集(主数据集和使用数据集),以及最终数据集的外观,您可能会获得有关所需命令的具体帮助。有关指南,请参阅 this page

【讨论】:

  • 谢谢你,罗伯托。这是一个信息丰富且有益的回应。我会记得在将来适当的时候准备一个有代表性的例子。
【解决方案2】:

您的问题的解决方案取决于您尝试与主数据集合并的具体内容。根据您的描述,我认为您的主数据中的每个参与者都由数字 ID 或字符串 ID 标识。既然你提到它是一个纵向的堆叠文件,我猜还有一个年份变量(或其他一些时间变量)。

如果您尝试合并的数据集是对相同数据的更多观察(相同变量,可能只是更多年),请查看append 命令。

如果您尝试合并的数据集处于参与者级别,那么 William 是对的,您需要 m:1。这是因为您在主文件中对同一参与者的许多观察结果相互叠加。 1:m 期望在堆栈中只找到每个 id 的一个副本。

如果您尝试合并的数据集处于参与者年级别(即也是纵向的),那么您需要merge 1:1 id year ...(或任何您的时间变量)。如果您的观察堆栈中每个 id 和 year 对只有一个副本(即每个时间段的每个参与者只有一个记录),这将起作用。请注意,如果您的数据不干净并且有多个,这将不起作用。

希望这会有所帮助!

【讨论】:

  • 谢谢你,黎明。我更好地理解了合并和附加命令,如何。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多