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

 

posted @ 2023-04-24 16:34  myrj  阅读(85)  评论(0编辑  收藏  举报