我在乳胶中有一个回归表,这是在我的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}
因此,有一些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/的员工也许可以在此问题上提供更多帮助。以及如何在列之间添加垂直线。我尝试添加|介于两者之间,但有时覆盖得不好,并且会在顶部和底部线条之间的某些空间中留下。
第二响应:您有一个正确的主意,但是它会中断的原因是您在某些行中没有足够的对齐选项卡(&
)。例如,在|
选项中将D{}{}{}
置于第三和第四tabular
之间会产生这种怪异:
所以,出了什么问题?指的是我用蓝色注释的区域:
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:显然,在这里什么也不做。