我是 LaTex 的完全初学者。我有 3 个表格来显示关于我的 3 个不同样本的统计数据。我想将它们合并为一个表格。首先,让我分享一下我用来创建 3 个不同表格的代码。代码是相同的。我基本上通过复制粘贴 3 次此代码(当然具有不同的值)来创建 3 个不同的表格。
\begin{table}
\centering
\begin{tabular}{@{}llccc@{}}
\toprule
& & \multicolumn{1}{l}{\textbf{Ambiguous}} & \multicolumn{1}{l}{\textbf{Unambiguous}} & \multicolumn{1}{l}{\textbf{Total}} \\ \midrule
& \textbf{split-1} & 170266 & 197630 & 367896 \\
\textbf{} & \textbf{split-2} & 21479 & 24645 & 46124 \\
& \textbf{split-3} & 21477 & 25166 & 46643
\end{tabular}
\caption{Statistics about first data}
\end{table}
它给出了下图:
正如我所说,我总共有 3 个不同的表。我想合并它们,最后得到一个类似于下面的表:
与上面的表格类似,我希望新表格中有 3 列(模糊、明确和总计)。此外,我需要替换(将表格中的死亡(所有原因)行替换为列车行,将表格中的癌症死亡行替换为开发行),并为每个粗体子部分添加一行。我该怎么做?
编辑
答案1
在下面的 MWE 中,我删除了不必要的第一列,因为您的表格只需要四列以及所有多余的\multicolumn
命令。
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{table}
\centering
\begin{tabular}{@{}lccc@{}}
\toprule
& \textbf{Ambiguous} & \textbf{Unambiguous} & \textbf{Total} \\
\midrule
\textbf{Dataset 1}\\
Train & 170266 & 197630 & 367896 \\
Dev & 21479 & 24645 & 46124 \\
Test & 21477 & 25166 & 46643 \\
\midrule
\textbf{Dataset 2}\\
Train & & & \\
Dev & & & \\
Test & & & \\
\midrule
\textbf{Dataset 3}\\
Train & & & \\
Dev & & & \\
Test & & & \\
\bottomrule
\end{tabular}
\caption{Statistics about first data}
\end{table}
\end{document}
如果您还想稍微缩进条目“train”,“dev”和“test”,您可能还会对以下变体感兴趣:
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{table}
\centering
\begin{tabular}{lccc@{}}
\toprule
& \textbf{Ambiguous} & \textbf{Unambiguous} & \textbf{Total} \\ \midrule
\multicolumn{4}{@{}l}{\textbf{Dataset 1}}\\
Train & 170266 & 197630 & 367896 \\
Dev & 21479 & 24645 & 46124 \\
Test & 21477 & 25166 & 46643 \\
\midrule
\multicolumn{4}{@{}l}{\textbf{Dataset 2}}\\
Train & & & \\
Dev & & & \\
Test & & & \\
\midrule
\multicolumn{4}{@{}l}{\textbf{Dataset 3}}\\
Train & & & \\
Dev & & & \\
Test & & & \\
\bottomrule
\end{tabular}
\caption{Statistics about first data}
\end{table}
\end{document}
答案2
您可以使用siunitx
功能来更好地排版表格。我展示了两个版本,其中一个没有粗体。
\documentclass{article}
\usepackage{siunitx,booktabs}
\begin{document}
\begin{table}[htp]
\centering
\begin{tabular}{
l
S[table-format=6.0]
S[table-format=6.0]
S[table-format=6.0]
@{}
}
\toprule
& {\textbf{Ambiguous}} & {\textbf{Unambiguous}} & {\textbf{Total}} \\
\midrule
\multicolumn{4}{@{}l}{\textbf{Dataset-1}} \\
\textbf{split-1} & 170266 & 197630 & 367896 \\
\textbf{split-2} & 21479 & 24645 & 46124 \\
\textbf{split-3} & 21477 & 25166 & 46643 \\
\midrule
\multicolumn{4}{@{}l}{\textbf{Dataset-2}} \\
\textbf{split-1} & 170266 & 197630 & 367896 \\
\textbf{split-2} & 21479 & 24645 & 46124 \\
\textbf{split-3} & 21477 & 25166 & 46643 \\
\midrule
\multicolumn{4}{@{}l}{\textbf{Dataset-3}} \\
\textbf{split-1} & 170266 & 197630 & 367896 \\
\textbf{split-2} & 21479 & 24645 & 46124 \\
\textbf{split-3} & 21477 & 25166 & 46643 \\
\bottomrule
\end{tabular}
\caption{Statistics about first data}
\end{table}
\begin{table}[htp]
\centering
\begin{tabular}{
l
S[table-format=6.0]
S[table-format=6.0]
S[table-format=6.0]
@{}
}
\toprule
& {Ambiguous} & {Unambiguous} & {Total} \\
\midrule
\multicolumn{4}{@{}l}{\textit{Dataset-1}} \\
split-1 & 170266 & 197630 & 367896 \\
split-2 & 21479 & 24645 & 46124 \\
split-3 & 21477 & 25166 & 46643 \\
\midrule
\multicolumn{4}{@{}l}{\textit{Dataset-2}} \\
split-1 & 170266 & 197630 & 367896 \\
split-2 & 21479 & 24645 & 46124 \\
split-3 & 21477 & 25166 & 46643 \\
\midrule
\multicolumn{4}{@{}l}{\textit{Dataset-3}} \\
split-1 & 170266 & 197630 & 367896 \\
split-2 & 21479 & 24645 & 46124 \\
split-3 & 21477 & 25166 & 46643 \\
\bottomrule
\end{tabular}
\caption{Statistics about first data}
\end{table}
\end{document}
答案3
像这样?
如果您需要更多组(三个),只需添加如图所示并在 mwe 中提供的内容:
\documentclass{article}
\usepackage[skip=1ex]{caption} % new
\usepackage{siunitx} % new
\usepackage{booktabs,
makecell} % new
\renewcommand\theadfont{\small\bfseries}
\renewcommand\theadgape{}
\newcommand\mcbf[1]{\multicolumn{2}{@{} l}{\textbf{#1}}}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\begin{document}
\begin{table}
\caption{Statistics about first data}
\label{tab:stat-sumary}
\centering
\begin{tabular}{@{} l
l
*{3}{S[group-four-digits,
table-format=6]}
@{}}
\toprule
& & {\thead{Ambiguous}} & {\thead{Unambiguous}} & {\thead{Total}} \\
\midrule
\mcbf{Dataset 1} & & & \\
& Train & 170266 & 197630 & 367896 \\
& Dev & 12312 & 44 & 12345 \\
& Test & 123123 & 888 & 98765 \\
\midrule
\mcbf{Dataset 2} & & & \\
& Train & 170266 & 197630 & 367896 \\
& Dev & 12312 & 44 & 12345 \\
& Test & 123123 & 888 & 98765 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}