Esttab,覆盖小数对齐

Esttab,覆盖小数对齐

这是Estout 和 dcolumn:覆盖小数对齐

就我而言,使用 esttab,它会将观测值的数量居中,但会添加一些小数,例如:Obersvations 3345.000,可能是因为我在 esttab 命令中设置了 se(3)或 b(3),这决定了要显示多少个小数。

有什么办法可以解决这个问题吗?

esttab sex0 sex1 using men_women_aboradTTT.tex, stats(N,layout("\multicolumn{1{c}{@}") ///
    label("Observations")) se(3) b(3) ///
    noconstant label replace booktabs alignment(D{.}{.}{4,6}) ///

答案1

将其包含stats(N, fmt(%18.0g)在您的 esttab 代码中。

编辑:抱歉,我之前没看到您指定N要进入多列。下面的方法可以解决问题,并且还包含其他一些内容,例如,如果您希望 R2 再次按十进制对齐,并在 N 后保留 3 个小数点(使用 siunitx,见下文):

stats(N r2_p, fmt(0 3) layout("\multicolumn{1}{c}{@}" "\multicolumn{1}{S}{@}") labels(`"Observations"' `"Pseudo \(R^{2}\)"'))

我应该补充一点,我强烈建议切换到 siunitx 进行十进制对齐。看看 Mico 的回答:

我还有另外两个问题:

此外,我建议使用带有 fragment 选项的 esttab(只需包含f在您的 esttab 代码中)。这样,esttab 生成的表格就是纯表格内容,没有标题和注释。我发现当表格变得有点复杂时,esttab 会破坏它们。您可以使用 fragment 选项避免这种情况。

使用片段选项时,请将以下内容包含到序言中:

\newcommand{\sym}[1]{\rlap{$#1$}} % Thanks to David Carlisle

\let\estinput=\input% define a new input command so that we can still flatten the document

\newcommand{\estwide}[3]{
        \vspace{.75ex}{
            \begin{tabular*}
                {\textwidth}{@{\hskip\tabcolsep\extracolsep\fill}l*{#2}{#3}}
            \toprule
            \estinput{#1}
            \bottomrule
            \addlinespace[.75ex]
            \end{tabular*}
            }
        }   

\newcommand{\estauto}[3]{
        \vspace{.75ex}{
            \begin{tabular}{l*{#2}{#3}}
            \toprule
            \estinput{#1}
            \bottomrule
            \addlinespace[.75ex]
            \end{tabular}
            }
        }

% Allow line breaks with \\ in specialcells
    \newcommand{\specialcell}[2][c]{%
    \begin{tabular}[#1]{@{}c@{}}#2\end{tabular}}

% ********************************************************************
% Custom subcaptions
% ********************************************************************
% Note/Source/Text after Tables
\newcommand{\figtext}[1]{
    \vspace{-1.9ex}
    \captionsetup{justification=justified,font=footnotesize}
    \caption*{\hspace{6pt}\hangindent=1.5em #1}
    }
\newcommand{\fignote}[1]{\figtext{\emph{Note:~}~#1}}

\newcommand{\figsource}[1]{\figtext{\emph{Source:~}~#1}}

% Add significance note with \starnote  
\newcommand{\starnote}{\figtext{\sym{*} p < 0.1, \sym{**} p < 0.05, \sym{***} p < 0.01. Standard errors in parentheses.}}


% ********************************************************************
% siunitx customization
% ********************************************************************
\usepackage{siunitx} % centering in tables
    \sisetup{
        detect-mode,
        tight-spacing               = true,
        group-digits                = false ,
        input-signs             = ,
        input-symbols               = ( ) [ ] - + *,
        input-open-uncertainty  = ,
        input-close-uncertainty = ,
        table-align-text-post   = false 
        }

这将为 esttab 生成的表格创建两个包装器。\estwide使用tabular*并将表格填充到文本宽度,\estauto使用tabular并使用“标准”表格宽度(即根据您的内容调整的宽度)。

自定义子标题将使用该caption包在表格下方包含简单注释。然后您可以按如下方式包含表格:

\begin{table}
    \caption{A really cool table} % The heading
    \estwide{table.tex}{2}{S[table-format=4.4]} % Include the table in the first bracket, the second bracket specifies the number of "data" columns and the third is for alignment (here using siunitx). The "4.4" specifies the decimals before and after the dot.
  % \estauto{table.tex}{2}{S[table-format=4.4]}
    \starnote % add description for significance stars 
    \figtext{\emph{Dependent Variable:} My dependent variable is cool}
    \fignote{Omitted groups: \emph{Employment:} Some dummies}
    \label{table}
\end{table}

相关内容