Estout 和 dcolumn:覆盖小数对齐

Estout 和 dcolumn:覆盖小数对齐

我正在使用 estout(实际上是 esttab)从 Stata 生成 Latex 表格。我正在使用 dcolumn 包来对齐表格中的小数位。

我想覆盖单行的对齐方式;具体来说是观察行的数量。有办法吗?或者,等效地,是否有办法在行中的每个元素前加上“\multicolumn{1}{c}{”前缀,后缀加上“}”,这将覆盖 dcolumn 对齐方式?

例子:

\begin{table}[htbp]\centering
\caption{My Table}
\begin{tabular}{l*{3}{D{.}{.}{-1}}}
\toprule        
                    &\multicolumn{1}{c}{Mean/s.d.}&\multicolumn{1}{c}{Mean/s.d.}&\multicolumn{1}{c}{Mean/s.d.}\\
\midrule
Var A               &        8.68&        8.51&        8.92\\
                    &        2.42&        2.51&        2.26\\
Var B               &        2.14&        1.98&        2.37\\
                    &        1.33&        1.29&        1.35\\
\midrule
Observations        &       38040&       22054&       15986\\
\bottomrule
\end{tabular}
\end{table}

谢谢!

答案1

优秀希尼奇包会让事情变得更容易一些。

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[tableposition=top]{caption}
\usepackage{booktabs}
\usepackage{siunitx}

\begin{document}
  \begin{table}[!ht]
    \caption{My Table}
    \centering
    \begin{tabular}{l*{3}{S}}\toprule        
                   & {Mean/s.d.} & {Mean/s.d.} &{Mean/s.d.} \\ \midrule
      Var A        & 8.68        & 8.51        & 8.92       \\
                   & 2.42        & 2.51        & 2.26       \\ \addlinespace
      Var B        & 2.14        & 1.98        & 2.37       \\
                   & 1.33        & 1.29        & 1.35       \\ \midrule 
      Observations & {38040}     & {22054}     & {15986}    \\ \bottomrule
    \end{tabular}
  \end{table}
\end{document}

使用花括号进行额外分组可使相关单元格内容显示为简单文本,而不是要解析的数字。有关自定义的详细信息,请参阅包手册。

答案2

你试过使用layout的子选项stats吗?它看起来接受文本输入,所以你可能想尝试类似

estout ... , stats(N , layout("\multicolumn{1}{c}{@}"))

嗯。如果我尝试一下

    sysuse auto, clear
    reg mpg wei for
    estout , stats(N , layout("\multicolumn{1}{c}{@}"))

似乎它也能对变量列进行格式化。嗯,好吧。

相关内容