变量列表的平均值和SD



我在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时是否只考虑这些观测值,因为所有变量都有一个非零值?还是单独处理每个变量?

在这段代码中,每个变量都被单独处理,因此无论其他变量的同一观测值中是否存在缺失值,计算中都会包含一个不缺失的值。

这不是你的目的,但可以简化。

  1. quietly可以说一次,而不是重复。

  2. CCD_ 2本身产生均值和SD;CCD_ 3选项是过度的。

  3. 只需要一个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     
}

最新更新