从Stata中的行条件生成新变量

时间:2016-08-01 19:07:03

标签: stata

我在Windows 7上使用Stata13。我有一个数据集,每个age连续重复观察educid。即变量q9p1educq9p1age分别是person1的教育和年龄,q9p2educq9p2age分别是person2的教育和年龄。我想提取教育水平年龄最大的人我已设法使用maxage提取最长年龄egen maxage = rowmax(q9p1age - q9p9age)如何获得最大年龄的人的教育? 样本数据为here

1 个答案:

答案 0 :(得分:0)

我首先将您的数据重新整理为长格式

reshape long q9@educ q9@age, i(id maxage) j(pid) string

然后答案取决于如果maxage不是唯一的,你想做什么。也许你可以做一些平均值的事情?

bysort id (age): gen temp=q9educ if age==maxage
bysort id: egen educmaxage=mean(temp)
drop temp

然后,如果你想要再宽一点,你可以简单地重塑一下。

reshape wide q9@educ q9@age, i(id maxage educmaxage) j(pid) string