我正在Stata中生成一个均值表,并尝试以某种方式对其进行格式化后将其导出为TeX
文件。我正在使用 community-contributed estout
系列命令来执行此操作,并且非常接近我想要的结果。
但是,我不知道如何在生成的输出中插入一些其他行和标签。
我尝试了以下代码:
eststo clear
eststo, title("Mean"): estpost sum Male Female Race1 Race2 Age1-Age6 Education1-Education6
esttab using "${outdir}\Demographic.tex", label mtitles title(Demographic Information) ///
main(mean) b(2) nostar nogaps nonote replace
上面的代码生成下表:
我想要的是在一个小组中提出不同的变量。例如,Male
和Female
应该在“性别”标题下缩进,类似地,其他变量应该在“种族”,“年龄”和“教育”标题下缩进。
当然。我可以在TeX
代码中手动添加这些行并缩进这些变量,但是我想从Stata生成完全格式化的表。
有办法吗?
答案 0 :(得分:1)
estout
命令不直接支持此功能,但是下面是一个使用人工生成的数据的玩具示例所演示的变通方法:
clear
set obs 246
local vars Male Female Race1 Race2 Age1 Age2 Age3 Age4 Age5 Age6 Education1 ///
Education2 Education3 Education4 Education5 Education6
foreach var of local vars {
generate `var' = runiform()
label variable `var' " `var'"
}
eststo clear
eststo, title("Mean"): estpost sum Male Female Race1 Race2 Age1-Age6 Education1-Education6
esttab, label mtitles title(Demographic Information) main(mean) b(2) nostar nogaps nonote ///
refcat(Male "Gender" Race1 "Race" Age1 "Age" Education1 "Education", nolabel)
这里的想法是在每个变量的标签中引入间距,然后指示esttab
在每个组之前创建“参考类别”。
上面的代码片段产生所需的输出:
Demographic Information
---------------------------------
(1)
Mean
---------------------------------
Gender
Male 0.52
Female 0.55
Race
Race1 0.51
Race2 0.46
Age
Age1 0.48
Age2 0.47
Age3 0.51
Age4 0.48
Age5 0.50
Age6 0.52
Education
Education1 0.51
Education2 0.52
Education3 0.50
Education4 0.48
Education5 0.48
Education6 0.50
---------------------------------
Observations 246
---------------------------------
请注意,可用空间是固定的,因此您可能必须缩短一些标签。另外,对于更长的标签,您将需要调整间距以使其与其余标签对齐。
编辑:
要让LaTeX
正确排版空格,您需要使用适当的标记将它们引入每个变量的标签中,如下所示:
label variable `var' "\hspace{0.5cm}`var'"