Latex中的转置回归表

问题描述 投票:0回答:1

我在乳胶中有一个回归表,这是在我的R回归结果上应用stargazer程序包的输出结果。我想知道如何对表进行转置,以使列与行交换位置。换句话说,我希望滞后是变量所在的位置,反之亦然。

此外,我想知道如何减少第一列和第二列之间的间距,以及如何在列之间添加垂直线。我尝试添加|介于两者之间,但有时覆盖得不好,并且会在顶部和底部线条之间的某些空间中留下。

\usepackage{dcolumn}
 \begin{table}[!htbp] \centering 
  \caption{Regression results} 
  \label{} 
    \setlength{\tabcolsep}{0pt}
\begin{tabular}{lD{.}{.}{-2} D{.}{.}{-2} D{.}{.}{-2} D{.}{.}{-2} D{.}{.}{-2} D{.}{.}{-2}} 
\\[-1.8ex]\hline 
\hline \\[-1.8ex] 
 & \multicolumn{6}{c}{Characteristics} \\ 
\cline{2-7} 
 \\ 
 Lags: & \multicolumn{1}{c}{1} & \multicolumn{1}{c}{2} & \multicolumn{1}{c}{3} & \multicolumn{1}{c}{4} & \multicolumn{1}{c}{5} & \multicolumn{1}{c}{6} \\ 
\hline \\[-1.8ex] 
 Variable 1 & -1.14^{***} & 0.04 & -1.73^{***} & -0.24 & -0.59 & -1.64^{***} \\ 
  Variable 2 & 0.16 & -0.25 & 0.12 & -0.12 & 0.14{**} & 0.04  \\ 
  Variable 3 & 0.46^{*} & -0.61 & 0.17 & -0.98^{***} & -0.32 & -0.09\\ 
  Variable 4 & -0.02 & -0.005 & -0.03^{***} & -0.32 & -0.11 & 0.015 \\ 
 \hline \\[-1.8ex] 
\hline 
\hline \\[-1.8ex] 
\textit{Note:}  & \multicolumn{6}{r}{$^{*}$p$<$0.1; $^{**}$p$<$0.05; $^{***}$p$<$0.01} \\ 
\end{tabular} 
\end{table}

enter image description here

r regression transpose stargazer
1个回答
0
投票

因此,有一些LaTeX基础知识:

(1)LaTeX并不复杂。在R中,可以使用t()转置表格或矩阵或任何东西。 LaTeX中没有这样的类似物。 (注意,它可能存在于包装中或某物中,但就我个人而言,我不相信这种方法。)

您将不得不手动重新键入表格-或者,或者说服R按摩表格之前,将其传递到LaTeX输出。由于您没有讨论任何R代码,因此我将跳过有关该代码的任何讨论,而将重点放在LaTeX部分。

(2)tabular环境的组成部分是://换行,而&(对齐指示符)跳到新标签。因此,如果您有一个类似[]的表

\begin{tabular}{c c c}
  a & b & c \\
  d & e & f
\end{tabular}

获得转置的唯一方法就是重新输入它:

\begin{tabular}{c c}
  a & d \\
  b & e \\
  c & f
\end{tabular}

\begin{tabular}后面的标记表示列数;例如,{c c c}表示三列,均居中。在您的表中,D标签代表每个dcolumn包中与小数点对齐的列,因此,在对表进行转置时,您需要删除其中的两个,因为您将拥有四个列变量而不是六个。之后,只需重新输入矩阵的内容即可。

关于您的其他问题:

我想知道如何减少第一列和第二列之间的空间

这是一个有趣的代码,似乎不包含在您发布的代码中。当我将完全相同的代码发布到一个空的LaTeX文档中时,它没有您所拥有的间距。这意味着该表已被某些other

代码膨胀,最有可能证明其是否符合给定的页面宽度或某种宽度。我不能帮忙,因为我无法重现工件,但是您可能会尝试用\begin{center}\end{center}包围整个代码块,也许吗?这可能会让LaTeX打破包含该表的盒子应该有多大的规则。不过,这完全是个猜测,https://tex.stackexchange.com/的员工也许可以在此问题上提供更多帮助。

以及如何在列之间添加垂直线。我尝试添加|介于两者之间,但有时覆盖得不好,并且会在顶部和底部线条之间的某些空间中留下。

第一响应:consider not doing vertical lines at all

第二响应:您有一个正确的主意,但是它会中断的原因是您在某些行中没有足够的对齐选项卡(&)。例如,在|选项中将D{}{}{}置于第三和第四tabular之间会产生这种怪异:

ugly, even for a vertical line

所以,出了什么问题?指的是我用蓝色注释的区域:

A:当您用\\中断一行时,如果您放置了适当数量的列前进标记,它只会打印垂直对齐条。通过用\hline \\[-1.8ex]替换变量1之前的\hline & & & & & & \\[-1.8ex]行来进行修复。 (每个所需的列前进一个&!)

B:在这种情况下,使用\multicolumn会覆盖任何其他垂直对齐选项。通过替换来修复

 Lags: & \multicolumn{1}{c}{1} & \multicolumn{1}{c}{2} & \multicolumn{1}{c}{3} & \multicolumn{1}{c}{4} & \multicolumn{1}{c}{5} & \multicolumn{1}{c}{6} \\ 

与任何一个

 Lags: & \multicolumn{1}{c}{1} & \multicolumn{1}{c}{2} & \multicolumn{1}{c|}{3} & \multicolumn{1}{c}{4} & \multicolumn{1}{c}{5} & \multicolumn{1}{c}{6} \\ 

 Lags: & \multicolumn{1}{c}{1} & \multicolumn{1}{c}{2} & \multicolumn{1}{c}{3} & \multicolumn{1}{|c}{4} & \multicolumn{1}{c}{5} & \multicolumn{1}{c}{6} \\ 

并注意|在两个修复程序中的哪个位置。

C:与A相同。通过在\\之后立即将\cline{2-7}替换为& & & & & & \\以前进至各列并呈现垂直标记,进行修复。

D:显然,在这里什么也不做。

© www.soinside.com 2019 - 2024. All rights reserved.