STATA 程序参数的三种写法
capture program drop gini //如果 gini 命令已存在,则删除,否则跳过该步 program gini //定义命令名为 gini args inc hhs //规定命令 gini 后要带两个变量 inc 与 hhs egen tinc=sum(`inc') //计算 gini 命令后第一个变量(收入支出等)的总和 egen tp=sum(`hhs') //计算 gini 命令后第二个变量(人口)的总和 gen m=`inc'/`hhs' //计算人均水平值 m sort m //按人均水平值排序 gen gini=1-sum(`hhs'/tp*(2*sum(`inc'/tinc)-`inc'/tinc)) //计算基尼系数 dis gini[_N] //显示基尼系数 end //程序结束 sysuse auto,clear // 带两个参数 gini rep78 mpg capture program drop ginia //如果 gini 命令已存在,则删除,否则跳过该步 program ginia //定义命令名为 gini egen tinc=sum(`1') //计算 gini 命令后第一个变量(收入支出等)的总和 egen tp=sum(`2') //计算 gini 命令后第二个变量(人口)的总和 gen m=`1'/`2' //计算人均水平值 m sort m //按人均水平值排序 gen gini=1-sum(`2'/tp*(2*sum(`1'/tinc)-`1'/tinc)) //计算基尼系数 dis gini[_N] //显示基尼系数 end //程序结束 sysuse auto,clear ginia rep78 mpg capture program drop ginib program ginib tempvar tinc tp m gini //设定 tinc tp m gini 四个变量为临时变量 egen `tinc'=sum(`1') //生成总收入,将总收入数据暂存在临时变量'tinc'中 egen `tp'=sum(`2') gen `m'=`1'/`2' sort `m' gen `gini'=1-sum(`2'/`tp'*(2*sum(`1'/`tinc')-`1'/`tinc')) dis `gini'[_N] //显示基尼系数 end sysuse auto,clear ginia rep78 mpg