在一个已经合并的学生数据集中,如何统计教师的年龄的均值呢?
使用到duplicates tag命令标记每个班级id重复的个数,统计出学生的个数,然后再进行一些巧妙的替换处理,具体计算如下:
*统计校级平均
duplicates tag classid year, gen(mistake) //标记一个班重复多少个,也就可以间接看出一个班由多少人
bysort classid year: replace mistake=0 if (_n != 1) //除每个班第一个外,剩下的全部替换为0
bysort schids:egen chnb02__ = mean(chnb02) if mistake!=0 //计算每个不等于0的学校级别的平均
bysort schids:egen chnb02___ = mean(chnb02__) //算出来的校级平均推广到缺失值中
replace chnb02 =chnb02___ if chnb02==. //替换
replace chnb02 = floor(chnb02)
tab chnb02 $chn,m
cap drop chnb02__ chnb02___ mistake