Merge 在stata中重塑和合并

Merge 在stata中重塑和合并,merge,stata,reshape,Merge,Stata,Reshape,我有三个数据集: 首先,叫做education.dta。它包含了个人(学生)在1990年至2000年期间的多年教育成就。最初它是宽格式的,但我可以很容易地将其重塑为长格式。它在以下内容中以广泛的形式呈现: id educ_90 educ_91。。。教育组 1 0 1 1 87 2 1 1 2 75 30290 第二,叫做graduate.dta。它包含个人(学生)何时完成高中学业的信息。然而,这个

我有三个数据集:

首先,叫做education.dta。它包含了个人(学生)在1990年至2000年期间的多年教育成就。最初它是宽格式的,但我可以很容易地将其重塑为长格式。它在以下内容中以广泛的形式呈现:

id educ_90 educ_91。。。教育组 1 0 1 1 87 2 1 1 2 75 30290

第二,叫做graduate.dta。它包含个人(学生)何时完成高中学业的信息。然而,这个数据集并不包含几年,只包含个人高中毕业时的“快照”和个人学生的特征,如背景(前父母职业)

id学校id县队列。。。 1 11 123 87 2 11 123 75 32224390

第三个数据集称为teachers.dta。它包含了所有高中教师的信息,比如他们的教育,他们是全职还是兼职,性别。。。这个数据集很长

id学校id县一年教育 22 11 123 2011 1 21 11 123 2001 1 23 22 243 2015 3

现在我想合并这三个数据集

首先,我想合并id上的education.dta和graduate.dta。 当education.dta很广泛时出现的问题:我设法将education.dta与degression.dta合并。然后我做一个循环,这样gradication.dta中的所有变量在所有年份都是相同的,例如:

forv j=1990/2000{ 根县
j´=。
替换县
j´=县 }

然而,之后当重塑为长stata reposts时,变量id并不能唯一地标识观测值

此外,我还尝试先将education.dta改为long,然后使用degration.dta将1:m或m:1与education合并为master

然而,stata再次声明id不是唯一的。我该怎么处理

在下一步中,我想将上述内容与schoolid上的teachers.dta合并

我想要长格式的最终数据集


感谢您的帮助:)

我不确定您的数据格式是否准确,如果您能给我们一个玩具数据集,让我们使用
dataex
(甚至可以帮助您自己解决问题!)

但首先,因为您看到id不是唯一的,所以需要弄清楚为什么在任何数据集中都可能有多个id。在graduate.dta或education.dta中的人可以出现多次吗<代码>帮助副本可能有助于以这种方式浏览数据

因为您希望数据集的格式为长格式,我建议首先将education.dta改为长格式,然后使用“graduate.dta”执行类似于
合并m:1ID的操作(一旦您弄清楚为什么某些观察结果会多次出现),然后,最后使用“teacher.dta”执行类似于
合并1:1学号年份的操作
您将拥有最终的数据集