变量列表的均值和标准差
Means and SDs of a list of variables
我在 Stata 中有以下代码,我正在尝试将其转换为 python
foreach var in income_pc_r income_village_pc_r income_migration exp_total_pc_r sav_cash12_any_r sav_cash12_amtcon_pc_r anygorl_r_ffv gorl_r_ffv_condamt anygorl_g_ffv gorl_g_ffv_condamt hhsize_r migrant_r { if inlist("`var'","income_pc_r","income_village_pc_r","income_migration","exp_total_pc_r","savelast12mo_condamt","gorl_r_ffv_condamt","gorl_g_ffv_condamt") {
qui sum `var', det
local mean=string(r(mean),"%10.0f")
local sd =string(r(sd), "%10.0f")
qui sum `var' if treat==0, det
local meanc=string(r(mean),"%10.0f")
local sdc =string(r(sd), "%10.0f")
qui sum `var' if treat==1, det
local meant=string(r(mean),"%10.0f")
local sdt =string(r(sd), "%10.0f")
file write ofile " `label`var'' & `mean' & `meanc' & `meant' \" _n ///
" & (`sd') & (`sdc') & (`sdt') \" _n } else {
qui sum `var', det
local mean=string(r(mean),"%10.2f")
local sd =string(r(sd), "%10.2f")
qui sum `var' if treat==0, det
local meanc=string(r(mean),"%10.2f")
local sdc =string(r(sd), "%10.2f")
qui sum `var' if treat==1, det
local meant=string(r(mean),"%10.2f")
local sdt =string(r(sd), "%10.2f")
file write ofile " `label`var'' & `mean' & `meanc' & `meant' \" _n ///
" & (`sd') & (`sdc') & (`sdt') \" _n } }
Stata 在计算每个变量的均值和 SD 时是否只采用那些观察值,所有变量都具有非空值?还是单独处理每个变量?
在此代码中,每个变量都被单独处理,因此无论其他变量的同一观察中是否存在缺失值,计算中都会包含一个 non-missing 值。
这不是你的目的,但可以简化。
quietly
只能说一次,不可重复。
summarize
本身产生均值和 SD; detail
选项有点矫枉过正。
只需要一个file write
语句。
我不能测试这个重写。
quietly foreach var in income_pc_r income_village_pc_r income_migration exp_total_pc_r sav_cash12_any_r sav_cash12_amtcon_pc_r anygorl_r_ffv gorl_r_ffv_condamt anygorl_g_ffv gorl_g_ffv_condamt hhsize_r migrant_r {
if inlist("`var'","income_pc_r","income_village_pc_r","income_migration","exp_total_pc_r","savelast12mo_condamt","gorl_r_ffv_condamt","gorl_g_ffv_condamt") {
sum `var'
local mean=string(r(mean),"%10.0f")
local sd =string(r(sd), "%10.0f")
sum `var' if treat==0
local meanc=string(r(mean),"%10.0f")
local sdc =string(r(sd), "%10.0f")
sum `var' if treat==1
local meant=string(r(mean),"%10.0f")
local sdt =string(r(sd), "%10.0f")
}
else {
sum `var'
local mean=string(r(mean),"%10.2f")
local sd =string(r(sd), "%10.2f")
sum `var' if treat==0
local meanc=string(r(mean),"%10.2f")
local sdc =string(r(sd), "%10.2f")
sum `var' if treat==1
local meant=string(r(mean),"%10.2f")
local sdt =string(r(sd), "%10.2f")
}
file write ofile " `label`var'' & `mean' & `meanc' & `meant' \" _n ///
" & (`sd') & (`sdc') & (`sdt') \" _n
}
我在 Stata 中有以下代码,我正在尝试将其转换为 python
foreach var in income_pc_r income_village_pc_r income_migration exp_total_pc_r sav_cash12_any_r sav_cash12_amtcon_pc_r anygorl_r_ffv gorl_r_ffv_condamt anygorl_g_ffv gorl_g_ffv_condamt hhsize_r migrant_r { if inlist("`var'","income_pc_r","income_village_pc_r","income_migration","exp_total_pc_r","savelast12mo_condamt","gorl_r_ffv_condamt","gorl_g_ffv_condamt") {
qui sum `var', det
local mean=string(r(mean),"%10.0f")
local sd =string(r(sd), "%10.0f")
qui sum `var' if treat==0, det
local meanc=string(r(mean),"%10.0f")
local sdc =string(r(sd), "%10.0f")
qui sum `var' if treat==1, det
local meant=string(r(mean),"%10.0f")
local sdt =string(r(sd), "%10.0f")
file write ofile " `label`var'' & `mean' & `meanc' & `meant' \" _n ///
" & (`sd') & (`sdc') & (`sdt') \" _n } else {
qui sum `var', det
local mean=string(r(mean),"%10.2f")
local sd =string(r(sd), "%10.2f")
qui sum `var' if treat==0, det
local meanc=string(r(mean),"%10.2f")
local sdc =string(r(sd), "%10.2f")
qui sum `var' if treat==1, det
local meant=string(r(mean),"%10.2f")
local sdt =string(r(sd), "%10.2f")
file write ofile " `label`var'' & `mean' & `meanc' & `meant' \" _n ///
" & (`sd') & (`sdc') & (`sdt') \" _n } }
Stata 在计算每个变量的均值和 SD 时是否只采用那些观察值,所有变量都具有非空值?还是单独处理每个变量?
在此代码中,每个变量都被单独处理,因此无论其他变量的同一观察中是否存在缺失值,计算中都会包含一个 non-missing 值。
这不是你的目的,但可以简化。
quietly
只能说一次,不可重复。summarize
本身产生均值和 SD;detail
选项有点矫枉过正。只需要一个
file write
语句。
我不能测试这个重写。
quietly foreach var in income_pc_r income_village_pc_r income_migration exp_total_pc_r sav_cash12_any_r sav_cash12_amtcon_pc_r anygorl_r_ffv gorl_r_ffv_condamt anygorl_g_ffv gorl_g_ffv_condamt hhsize_r migrant_r {
if inlist("`var'","income_pc_r","income_village_pc_r","income_migration","exp_total_pc_r","savelast12mo_condamt","gorl_r_ffv_condamt","gorl_g_ffv_condamt") {
sum `var'
local mean=string(r(mean),"%10.0f")
local sd =string(r(sd), "%10.0f")
sum `var' if treat==0
local meanc=string(r(mean),"%10.0f")
local sdc =string(r(sd), "%10.0f")
sum `var' if treat==1
local meant=string(r(mean),"%10.0f")
local sdt =string(r(sd), "%10.0f")
}
else {
sum `var'
local mean=string(r(mean),"%10.2f")
local sd =string(r(sd), "%10.2f")
sum `var' if treat==0
local meanc=string(r(mean),"%10.2f")
local sdc =string(r(sd), "%10.2f")
sum `var' if treat==1
local meant=string(r(mean),"%10.2f")
local sdt =string(r(sd), "%10.2f")
}
file write ofile " `label`var'' & `mean' & `meanc' & `meant' \" _n ///
" & (`sd') & (`sdc') & (`sdt') \" _n
}