
Soy realmente nuevo en el uso de LaTex y me gustaría recibir ayuda para crear esta tabla usando booktabs
formato. Yo uso R
e idealmente lo generaría usando xtables
el paquete. Sin embargo, no pude lidiar con el tema de la extensión de columnas.
Por eso intenté insertar \multicolumn
el comando manualmente.
Aquí está el código:
\documentclass{article}
\usepackage{booktabs}
\usepackage{multirow}
\begin{document}
\begin{table}[ht]
\centering
\begin{tabular}{@{\extracolsep{4pt}}llccccccc}
\toprule
{} & {} & {Observations} & \multicolumn{3}{c}{Median} & \multicolumn{3}{c}{SD}\\
\cline{3-3}
\cline{4-6}
\cline{7-9}
Year & Group & N & V1 & V2 & V3 & V1 & V2 & V3 \\
\hline
\multirow{2}{*}{2012}
& Control & 2 & 0.052 & 0.294 & 0.115 & 0.304 & 0.619 & 0.611 \\
& Treat & 2 & 0.511 & 0.083 & 0.123 & 0.573 & 0.541 & 0.734 \\
\multirow{2}{*}{2016}
& Control & 3 & 0.320 & 0.344 & 0.382 & 0.382 & 0.494 & 0.477 \\
& Treat & 3 & 0.378 & 0.296 & 0.123 & 0.386 & 0.668 & 0.732 \\
\hline
\end{tabular}
\caption{Mean by Year and Group}
\end{table}
\end{document}
Sin embargo, creo que esta tabla no está muy bien formateada, no según los booktabs
estándares, ¿verdad? ¿Cómo hacer manualmente una tabla con el mismo diseño, pero mejor formateada?
Gracias
Respuesta1
El principal problema con la tabla es que no estás usando las booktabs
reglas, sino una mezcla de reglas tabulares estándar ( \hline
y \cline
) y booktabs
reglas ( \toprule
).
Reemplazar estas reglas con las booktabs
versiones ( \midrule
y \cmidrule
) \bottomrule
le brinda el formato agradable que desea.
He quitado las multirow
cosas. Esto no añade nada a tu mesa; está perfectamente claro simplemente poner el año en la primera fila de los pares de filas para ese año. En general, evitaría usarlo multirow
en absoluto. Tiene sus usos, pero generalmente para cosas como formularios que tienen celdas encuadradas. Para tablas de investigación estándar casi nunca es apropiado.
PD: ¡Espero que los datos estén inventados! Tus N son realmente pequeñas... :)
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{table}[ht]
\centering
\begin{tabular}{@{\extracolsep{4pt}}llccccccc}
\toprule
{} & {} & {Observations} & \multicolumn{3}{c}{Median} & \multicolumn{3}{c}{SD}\\
\cmidrule{3-3}
\cmidrule{4-6}
\cmidrule{7-9}
Year & Group & N & V1 & V2 & V3 & V1 & V2 & V3 \\
\midrule
2012 & Control & 2 & 0.052 & 0.294 & 0.115 & 0.304 & 0.619 & 0.611 \\
& Treat & 2 & 0.511 & 0.083 & 0.123 & 0.573 & 0.541 & 0.734 \\
2016 & Control & 3 & 0.320 & 0.344 & 0.382 & 0.382 & 0.494 & 0.477 \\
& Treat & 3 & 0.378 & 0.296 & 0.123 & 0.386 & 0.668 & 0.732 \\
\bottomrule
\end{tabular}
\caption{Mean by Year and Group}
\end{table}
\end{document}
Algunos comentarios sobre la composición tipográfica de datos numéricos.
Usar el c
tipo de columna realmente no es el mejor plan cuando se escriben datos numéricos. Generalmente queremos que los datos numéricos estén alineados de alguna manera, de modo que si los números son de diferentes tamaños, se alineen correctamente.
Para datos decimales, es normal alinearse con el punto decimal. Para datos no decimales, la alineación simple a la derecha está bien.
Para alinear con el punto decimal, puedes usar el siunitx
paquete o el dcolumn
paquete. siunitx
tiene muchas capacidades sofisticadas para formatear datos numéricos automáticamente, incluida la agrupación de dígitos para números grandes. También proporciona formas de componer correctamente las unidades SI. El dcolumn
paquete está diseñado específicamente para la alineación del punto decimal. A continuación se muestra un ejemplo para mostrarle las diferencias.
\documentclass{article}
\usepackage{booktabs}
\usepackage{dcolumn}
\usepackage{siunitx}
% Shorthand for multicolumn
\newcommand\mc[1]{\multicolumn{1}{c}{#1}}
\begin{document}
\begin{tabular}{ccrD{.}{.}{2.3}S}
\toprule
Center & Center & \mc{right} & \mc{D-column} & \mc{S-column} \\
\midrule
1 & 32.6 & 1 & 32.6 & 32.6 \\
10 & 335.434 & 10 & 335.434 & 335.434 \\
100 & 0.99 & 100 & 0.99 & 0.99 \\
5 & 1 & 5 & 1 & 1 \\
\bottomrule
\end{tabular}
\end{document}
Respuesta2
En primer lugar, todas las reglas deben realizarse con booktabs
, ya que agrega algo de relleno a las reglas de la mesa (las filas de la mesa en látex básico a menudo son demasiado apretadas).
En segundo lugar, los títulos de las tablas deben serarribatablas, ya que las tablas pueden ocupar varias páginas y los lectores no deberían tener que pasar la página para saber de qué trata la tabla. Para esto, el título package
es útil, el látex básico se olvida de intercambiar los valores de \abovecaptionskip
y \belowdisplayskip
cuando el título está sobre la mesa.
En tercer lugar, lo reemplazaría Observations
con una abreviatura, ya que me parece feo tener una columna de un solo dígito con un encabezado de columna tan ancho.
Cuarto, establecería un espacio entre columnas más pequeño para los dos grupos de 3 columnas al final de la tabla. Además, el (lr)
parámetro `\cmidrules es útil aquí para mejorar el aspecto general de la tabla.
\documentclass{article}
\usepackage{array, multirow, caption, booktabs}
\begin{document}
\begin{table}[ht]
\centering\setlength\extrarowheight{2pt}
\caption{Mean by Year and Group}
\begin{tabular}{@{\extracolsep{4pt}}llc*{2}{c@{\enspace}c@{\enspace}c}}
\toprule
{} & {} & {Obsv\textsuperscript{ns}} & \multicolumn{3}{c}{Median} & \multicolumn{3}{c}{SD}\\
\cmidrule(lr){3-3}
\cmidrule{4-6}
\cmidrule(lr){7-9}
Year & Group & N & V1 & V2 & V3 & V1 & V2 & V3 \\
\midrule
\multirow{2}{*}{2012}
& Control & 2 & 0.052 & 0.294 & 0.115 & 0.304 & 0.619 & 0.611 \\
& Treat & 2 & 0.511 & 0.083 & 0.123 & 0.573 & 0.541 & 0.734 \\
\addlinespace
\multirow{2}{*}{2016}
& Control & 3 & 0.320 & 0.344 & 0.382 & 0.382 & 0.494 & 0.477 \\
& Treat & 3 & 0.378 & 0.296 & 0.123 & 0.386 & 0.668 & 0.732 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
Nota: Si no desea abreviar `Observaciones, debería considerar reorganizar la tabla intercambiando filas y columnas.