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