我在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时使用这些观测值吗?还是对每个变量进行单独处理?
发布于 2022-03-25 09:09:14
在这段代码中,每个变量分别处理,因此一个不缺少的值将包含在计算中,而不管其他变量是否存在相同的观测值。
这不是你的目的,但可以简化。
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
}https://stackoverflow.com/questions/71611430
复制相似问题