如何对齐两列不同的长度?

如何对齐两列不同的长度?

我使用 R 中的 stargazer 模块制作了下表(我对其进行了一些修改)。我希望将那个非常长的 IV 交互项(0.300)的标准误差与左列文本的第二行放在同一行,这样表格中就不会出现目前存在的空白。

另外,在相关说明中,stargazer 包有这种奇怪的符号来创建其表格,我将其替换为特定的列宽。我指的是这个,我已将其添加为注释:{@{\extracolsep{5pt}}lD{.}{.}{-3} }

这是什么意思?

据我搜索,我遇到了以下问题:如何对齐表格中的两列但它们没有介绍如何在表格中间执行此操作。

\begin{tabular}{p{7cm}p{2cm}} %{@{\extracolsep{5pt}}lD{.}{.}{-3} } 
\\[-1.8ex]\hline 
\hline \\[-5ex] 
 & \multicolumn{1}{c}{\textit{Dependent variable:}} \\ 
\cline{2-2} 
\\[-4.5ex] & \multicolumn{1}{c}{Some DV} \\ 
\hline \\[-5ex] 
 Some IV & \multicolumn{1}{c}{0.1} \\ 
  & \multicolumn{1}{c}{(0.1)} \\ 
  Some really long IV for an interaction with*another really long IV & \multicolumn{1}{c}{$50^{***}$} \\ 
  & \multicolumn{1}{c}{(0.300)} \\ 
  Constant & \multicolumn{1}{c}{$50^{***}$} \\ 
  & \multicolumn{1}{c}{(10.3)} \\ 
 \hline \\[-5ex] 
Observations & \multicolumn{1}{c}{1000} \\ 
R$^{2}$ & \multicolumn{1}{c}{0.121} \\
\hline 
\hline \\[-1.8ex] 
\textit{Note:}  & \multicolumn{1}{r}{$^{*}$p$<$0.1; $^{**}$p$<$0.05; $^{***}$p$<$0.01} \\ 
\end{tabular}

在此处输入图片描述

答案1

要简单地移动(0.300)到同一行,with*...您可以使用 makecell 包,如以下示例所示。

\documentclass{article}
\usepackage{makecell}
\begin{document}

\begin{tabular}{p{7cm}c}
\\
\hline 
\hline
 & \textit{Dependent variable:} \\ 
\cline{2-2} 
 & Some DV \\ 
\hline
 Some IV & 0.1 \\ 
  & (0.1) \\ 
  Some really long IV for an interaction with*another really long IV &  \makecell[t]{$50^{***}$ \\(0.300)} \\ 
  Constant & $50^{***}$ \\ 
  & (10.3)\\ 
 \hline
Observations & 1000 \\ 
R$^{2}$ & 0.121 \\
\hline 
\hline
\textit{Note:}  & \multicolumn{1}{r}{$^{*}$p$<$0.1; $^{**}$p$<$0.05; $^{***}$p$<$0.01} \\ 
\end{tabular}

\end{document}

在此处输入图片描述

请注意,我已经删除了所有不必要的\multicolumn{1}命令(以及 [-5ex]...)并更改了第二列的列说明符。

为了使表格中水平线与文本之间的距离更具视觉吸引力,您还可以考虑使用booktabs包及其规则,如下例所示。请注意,我还更改了行,Note以便第二列不会太宽。

\documentclass{article}
\usepackage{makecell}
\usepackage{booktabs}

\begin{document}

\begin{tabular}{p{7cm}c}
\toprule
 & \textit{Dependent variable:} \\ 
\cmidrule{2-2} 
 & Some DV \\ 
\midrule
 Some IV & 0.1 \\ 
  & (0.1) \\ 
  Some really long IV for an interaction with*another really long IV &  \makecell[t]{$50^{***}$ \\(0.300)} \\ 
  Constant & $50^{***}$ \\ 
  & (10.3)\\ 
\midrule
Observations & 1000 \\ 
R$^{2}$ & 0.121 \\
\bottomrule
\multicolumn{2}{l}{\textit{Note:} \hfill  $^{*}$p$<$0.1; $^{**}$p$<$0.05; $^{***}$p$<$0.01}
\end{tabular}

\end{document}

在此处输入图片描述

最后,您还可以考虑将值和其错误放在同一行中。在我看来,这样可以更清楚地了解它们属于左列中的哪个条目。作为副作用,您将节省一些垂直空间。

答案2

一些改进和简化:我将头行后的前六行按对分组,系统地使用makecell,在组之间添加一些垂直间距并修剪\cmidrule。我还使用了threeparttable包进行注释:

\documentclass{article}
\usepackage{makecell}
\usepackage{booktabs}
\usepackage{threeparttable, xspace}

\begin{document}

\begin{threeparttable}
\begin{tabular}{lc}
\toprule
 & \textit{Dependent variable:} \\
\cmidrule(lr){2-2}
 & Some DV \\
\midrule
 Some IV & \makecell[t]{0.1\\(0.1)} \\
 \addlinespace
  \makecell[l]{Some really long IV for an interaction \\ with\tnote{*}\, another really long IV} & \makecell{50\tnote{***} \\(0.300)} \\
\addlinespace
  Constant & \makecell[t]{50\tnote{***}\\ (10.3)} \\
\midrule
Observations & 1000 \\
R$^{2}$ & 0.121 \\
\bottomrule
\end{tabular}
\begin{tablenotes}[para]
\textit{Note: }
  \item[*] $p < 0.1$;
\item[** ] $p < 0.05$;
\item[***] $p < 0.01$.
\end{tablenotes}
\end{threeparttable}

\end{document} 

在此处输入图片描述

相关内容