如何在Stata中创建家庭层面的最高得分变量
家庭最高得分变量的正确生成方法
问题排查
你之前的第二个命令存在逻辑错误:代码中family[_N]调用的是家庭编号的组内最后一行值,而非最高得分,这是结果不符合预期的核心原因;第一个命令若未生效,大概率是因为原始变量名Highest score带空格,未用反引号包裹导致Stata无法识别。
正确实现方式
方法1:使用egen命令
针对带空格的原始变量名,需用反引号包裹变量名:
egen familyhighscore = max(`Highest score'), by(family)
若已将变量重命名为无空格的highestscore,可简化为:
egen familyhighscore = max(highestscore), by(family)
方法2:使用bysort分组生成
同样注意变量名的空格处理,正确命令为:
bysort family (`Highest score'): gen familyhighscore = `Highest score'[_N]
重命名变量后版本:
bysort family (highestscore): gen familyhighscore = highestscore[_N]
保留值标签
若新变量未自动继承原始变量的0=低,1=中,2=高值标签,执行以下命令复制标签:
label copy `Highest score' familyhighscore
重命名变量后版本:
label copy highestscore familyhighscore
用你的样本数据测试后,家庭4的两个个体familyhighscore值均为1,家庭6的两个个体值均为2,完全符合预期。
内容的提问来源于stack exchange,提问作者user1211188
相关产品推荐
相关产品推荐

