gpt4 book ai didi

latex - 使用Stata的esttab,为单元格格式添加美元符号,导出为Latex

转载 作者:行者123 更新时间:2023-12-04 12:51:58 27 4
gpt4 key购买 nike

我的顾问要我在汇总统计表中添加美元符号。我生成这个表并使用 Stata 的 esttab 命令将它导出到 Latex 中。

我需要 1) 将美元符号添加到某些结果单元格(不是全部)和 2) 确保 Latex 可以处理美元符号。

我认为 2 可以使用替代选项来完成,但我不知道如何做 1。这是我试图用来解决这个问题的一些最小代码。

sysuse auto, clear

estpost summarize price mpg weight length if foreign==0
est store A
estpost summarize price mpg weight length if foreign==1
est store B

esttab A B using $root/Outputs/test.tex, replace /// //a file path on my machine
cells("mean (fmt(%9.0fc %9.2fc %9.0fc))" "sd(par fmt(%9.0fc %9.2fc %9.0fc))") ///
mtitle("Domestic" "Foreign") ///
mgroups("Type", pattern(1 0) prefix(\multicolumn{@span}{c}{) suffix(}) span erepeat( \cmidrule(lr){@span})) ///
nonumber booktabs f label collabels(none)

eststo clear

这产生:
                    &\multicolumn{2}{c}{Type} \\\cmidrule(lr){2-3}
&\multicolumn{1}{c}{Domestic}&\multicolumn{1}{c}{Foreign}\\
\midrule
Price & 6,072& 6,385\\
& (3,097)& (2,622)\\
Mileage (mpg) & 19.83& 24.77\\
& (4.74)& (6.61)\\
Weight (lbs.) & 3,317& 2,316\\
& (695)& (433)\\
Length (in.) & 196& 169\\
& (20)& (14)\\
\midrule
Observations & 52& 22\\

我想得到它,所以输出会在 6,072 和 6,385 前面有\$

我在 Statalist 上看到了一些关于图表变通方法的讨论,但没有关于 esttab 的讨论。有人还提到创建“自定义格式”,但我似乎无法在任何地方找到相关文档。

最佳答案

我曾经遇到过类似的问题:我想根据显着性水平为单元格着色。最后,我能想到的最简单的自动化解决方案是修改 esttab 代码……事实上,这比听起来容易。

estout.ado 中查找以下代码:

if `:length local thevalue'<245 {
local thevalue: di `fmt_m' `"`macval(thevalue)'"'
}

在那之后你可以插入,例如
local thevalue `"\$`macval(thevalue)'\$"'

那会产生:
                    &\multicolumn{2}{c}{Type} \\\cmidrule(lr){2-3}
&\multicolumn{1}{c}{Domestic}&\multicolumn{1}{c}{Foreign}\\
\midrule
Price &$ 6,072$&$ 6,385$\\
&$ (3,097)$&$ (2,622)$\\
Mileage (mpg) &$ 19.83$&$ 24.77$\\
&$ (4.74)$&$ (6.61)$\\
Weight (lbs.) &$ 3,317$&$ 2,316$\\
&$ (695)$&$ (433)$\\
Length (in.) &$ 196$&$ 169$\\
&$ (20)$&$ (14)$\\
\midrule
Observations & 52& 22\\

(不要忘记在导出前 program drop estout,以便 .ado 重新加载)

因此,主表中的所有数值都封装在 $ 符号中。如果您只想要特定的值,您可以做一个简单的正则表达式条件。例如,如果您只关心捕获那些有逗号的值(无论出于何种原因),您可以执行以下操作:
if strpos("`macval(thevalue)'", ",") {
local thevalue `"\$`macval(thevalue)'\$"'
}

并且你也可以添加你自己的选项(就在 estout.ado 的开头),这样修改后的行为就不会一直被触发。

关于latex - 使用Stata的esttab,为单元格格式添加美元符号,导出为Latex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43311020/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com