我正在使用和编写我的论文作为动态文档.Rnw
。我在外部脚本中运行统计分析,并将其导入到我的主文件中。knitr
R
R
.Rnw
我还想创建一些表格来显示汇总统计数据和我的回归分析的输出。对于某些单元格,我手动输入值,而对于其他单元格,我使用源文件中的knitr
命令调用这些值。\Sexpr{}
R
以下 MWE 深入了解了我所说的内容:
\documentclass{scrartcl}
\usepackage{tabularx}
\usepackage{booktabs}
\begin{document}
\begin{table}
\caption{This is a table}
\begin{tabularx}{\textwidth}{XXXXX}
\toprule
&\multicolumn{2}{c}{First subset} & \multicolumn{2}{c}{Second subset}\\
\cmidrule(lr){2-3} \cmidrule(lr){4-5}
& {Model1: WTP\_PR\_bin} & {Model2: WTP\_PR\_log} & {Model3: WTP\_RE\_bin} & {Model4: WTP\_RE\_log} \\
\midrule
Const & \Sexpr{sprintf("%.3f", round(244/33, digits=3))}*** & 22.300 & \Sexpr{round(exp(0.987), digits=3)} & 65.876\\
Variable 1 & \Sexpr{round(exp(0.873), digits=3)} &-34.445* & \Sexpr{round(sqrt(75688), digits=3)} & 0.348\\
Variable 2 & \Sexpr{78*87.343} & 222.873 & -0.874 & -1.234**\\
\bottomrule
\end{tabularx}
Note: Displayed are the coefficients; *\(p<0.1\), **\(p<0.05\), ***\(p<0.001\).
\end{table}
\end{document}
上述代码的结果如下:
我现在的目标是让每一列的值都按小数点对齐。请参见上表中值的对齐方式。值左对齐,但不对齐到小数点。
有人知道该如何解决这个问题吗?我期望是这样的:
感谢您的支持。
马格努斯
答案1
对于数值数据,使用tabular*
(或tabular
)而不是:tabularx
\documentclass{scrartcl}
\usepackage{dcolumn}
\usepackage{booktabs}
\newcommand\hd[1]{\multicolumn{1}{c}{\begin{tabular}{@{}c@{}}#1\end{tabular}}}
% hack as no R on this machine
\def\Sexpr#1{12.123}
\catcode`\%=12
\begin{document}
\begin{table}
\caption{This is a table}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}l*{4}{D{.}{.}{4.3}}@{}}
\toprule
&\multicolumn{2}{c}{First subset} & \multicolumn{2}{c}{Second subset}\\
\cmidrule(lr){2-3} \cmidrule(lr){4-5}
&
\hd{Model1:\\ WTP\_PR\_bin} &
\hd{Model2:\\ WTP\_PR\_log} &
\hd{Model3:\\ WTP\_RE\_bin} &
\hd{Model4:\\ WTP\_RE\_log} \\
\midrule
Const & \Sexpr{sprintf("%.3f", round(244/33, digits=3))}*** & 22.300 & \Sexpr{round(exp(0.987), digits=3)} & 65.876\\
Variable 1 & \Sexpr{round(exp(0.873), digits=3)} &-34.445* & \Sexpr{round(sqrt(75688), digits=3)} & 0.348\\
Variable 2 & \Sexpr{78*87.343} & 222.873 & -0.874 & -1.234**\\
\bottomrule
\end{tabular*}
Note: Displayed are the coefficients; *\(p<0.1\), **\(p<0.05\), ***\(p<0.001\).
\end{table}
\end{document}