【发布时间】:2020-07-22 14:55:16
【问题描述】:
我有以下两个数据集。
孩子们的第一个看起来像这样。
ID 年份 Q1 Q2 Q3 Q4 ....
101 2014 1 2 2 2
101 2016 1 2 2 2
101 2017 1 2 2 2
101 2018 1 2 2 2
401 2014 1 2 2 2
401 2015 1 2 3 3
401 2016 1 2 2 2
401 2017 1 2 1 1
401 2018 1 2 2 2
402 2014 1 1 0 3
402 2015 1 1 2 2
402 2016 1 1 2 2
402 2017 1 1 3 3
402 2018 1 1 2 3
这是他们父母的第二个。
ID 年份 Q101 Q102
1 2014 1 3
1 2015 1 3
1 2016 1 3
1 2017 1 2
1 2018 1 2
2 2014 2 .
2 2015 1 2
2 2016 年。 .
2 2017 1 3
2 2018 2 .
4 2014 1 3
4 2015 1 3
4 2016 1 3
4 2017 1 3
4 2018 1 3
因此,父数据 ID 可以与删除最后两位数字的子数据 ID 匹配。似乎父母 ID 4 有两个孩子。
我试过了 使用孩子数据作为主数据集合并 1:m ID。 但它没有用。
谢谢。
【问题讨论】:
-
因此,在此信息中,子数据集中的父标识符为
floor(ID/100)。您需要在父标识符上使用merge 1:m或merge m:1(取决于您采用哪种方式),该标识符在两个数据集中必须具有相同的名称。 -
请参阅 Stata 标签 wiki 或 statalist.org/forums/help#stata,了解如何使用代码呈现真实或真实的数据示例。这将帮助您更快地获得好的答案。
-
我编辑了这个问题。感谢您的信息
-
我运行这个。
save kids,replace、use kids、merge m:1 floor(ID/100) parents并且错误显示“不允许使用因子变量和时间序列运算符”。 -
对不起,不是我的暗示。您确实需要使用该配方来
generate一个新变量,并且在任何情况下merge都需要一个或多个要合并的变量名称(而不是表达式)。正如我所说,标识符在两个数据集中必须具有相同的名称。