【问题标题】:reshape and merge in stata在stata中重塑和合并
【发布时间】:2017-09-02 19:18:53
【问题描述】:

我有三个数据集:

首先,称为education.dta。它包含多年的个人(学生),他们从 1990 年到 2000 年获得的教育。最初它是宽幅的,但我可以很容易地把它改成长的。它在下面显示为宽:

id educ_90 educ_91 ... educ_00 同类群组 1 0 1 1 87 2 1 1 2 75 3 0 0 2 90

第二个,叫做graduate.dta。它包含个人(学生)何时完成高中的信息。但是,该数据集不包含几年的个人高中毕业后的“快照”以及个人学生的特征,例如背景(针对前父母的职业)。

id schoolid 县队列... 1 11 123 87 2 11 123 75 3 22 243 90

第三个数据集称为teacher.dta。它包含有关高中所有教师的信息,例如他们的教育程度、他们是全职还是兼职、性别……这个数据集很长。

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

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

首先,我想在 id 上合并education.dta 和graduate.dta。 教育.dta 很宽时的问题:我设法合并教育和毕业.dta。然后我做了一个循环,以便所有年份的毕业.dta 中的变量都相同,对于 eksample:

forv j=1990/2000 { 根县j´=. replace countyj´=县 }

但是,之后在重新整形为长状态时重新发布该变量 id 并不能唯一地标识观察结果。

此外,我尝试先将education.dta 重塑为long,然后使用graduation.dta 将1:m 或m:1 与education 作为master 合并。

但是 stata 再次重新发布该 id 不是唯一的。我该如何处理?

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

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

感谢您的帮助:)

【问题讨论】:

    标签: merge stata reshape


    【解决方案1】:

    我不确定我是否拥有您的数据格式,如果您给我们一个玩具数据集以使用dataex 来查看会很有帮助(甚至可以帮助您自己找出问题!)

    但是首先,因为您看到 id 不是唯一的,所以您需要弄清楚为什么任何数据集中都可能有多个 id。有人可以在graduate.dta 或education.dta 中出现多次吗? help duplicates 可能有助于以这种方式探索数据。

    因为您希望您的数据集采用长格式,我建议先将education.dta 重新整形为长格式,然后执行merge m:1 id using "graduate.dta" 之类的操作(一旦您弄清楚为什么某些观察结果会出现不止一次),最后是@ 987654324@,您将获得最终数据集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多