*-请把如下代码制作成 do-file,然后整体执行即可。
cd D:\stata11\ado\personal\temp //按照你自己的存储路径修改一下即可
insheet using gbt2002.txt, clear
*-根据首字母分组
*-参见 Stata初级 A2_data 部分的讲义
gen gbtA = real(substr(string(gbt2002),1,1)) if gbt2002<1000
replace gbtA = real(substr(string(gbt2002),1,2)) if gbt2002>1000
xgroup gbtA, gen(gbt_gg) label lname(gbt_gg)
labelbook gbt_gg //对应关系
*-value 加权和算术平均值
*-分组算术平均值
bysort gbt_gg: egen mean_avg = mean(avgdutiable)
*-分组加权平均值(参见学术论文视频 Faulkender_2006.do )
gen wmean_avg = .
qui tab gbt_gg
local N = r(r)
forvalues i=1/`N'{
qui sum avgdutiable [weight=value] if gbt_gg==`i'
qui replace wmean_avg = r(mean) if gbt_gg==`i'
}