Tengo dos tablas separadas con el mismo número de filas y etiquetas de la siguiente manera:
uno:
a 12
b 32
c 18
dos:
a 45
b 98
c 300
¿Cómo puedo combinar esas dos tablas en una? como sigue:
a 12 45
b 32 98
c 18 300
gracias elisheva
Respuesta1
El \pgfplotstablecreatecol
comando de lapgfplotstable
El paquete se puede utilizar aquí para agregar columnas adicionales a una tabla cuando se crea:
\documentclass{article}
\usepackage{pgfplotstable}
\usepackage{booktabs}
%\pgfplotsset{compat=1.10}
%the following section is just for the example; you can have your actual tables
% in separate external files
\usepackage{filecontents}
\begin{filecontents*}{table1.dat}
name data1
a 12
b 32
c 18
\end{filecontents*}
\begin{filecontents*}{table2.dat}
name data2
a 45
b 98
c 300
\end{filecontents*}
%%%% end of section %%%%%%%%%%%%%%%
\pgfplotstableread{table1.dat}{\loadedtablei}
\pgfplotstableread{table2.dat}{\loadedtableii}
\pgfplotstablecreatecol[
copy column from table={\loadedtableii}{[index] 1},
]{data2}{\loadedtablei}
\begin{document}
\pgfplotstabletypeset[
string type,
every head row/.style={before row=\toprule,after row=\midrule},
every last row/.style={after row=\bottomrule}
]{\loadedtablei}
\end{document}
Como mencioné en el código, la filecontents*
sección es solo para el ejemplo; puede tener sus tablas en archivos externos separados, por ejemplo, o puede tenerlas en su .tex
archivo real.
Aquí tienes un ejemplo más real, explicando paso a paso el procedimiento.
Crea un archivo
table1.dat
como este:Category Valuea {Share Jewish} 0.87 {Share Muslim} 0.05 {Share other religion} 0.08 {Mean age} 33.28 {Share born in Israel} 0.69 {Share work} 0.23 {Share male} 0.51 {Share dis\_21} 0.01 {Share dis\_18} 0.00 {Share dis\_13} 0.00
Crea un archivo
table2.dat
como este:Category Valueb {Share Jewish} 0.13 {Share Muslim} 0.51 {Share other religion} 0.18 {Mean age} 23.16 {Share born in Israel} 0.29 {Share work} 0.15 {Share male} 0.33 {Share dis\_21} 0.02 {Share dis\_18} 0.01 {Share dis\_13} 0.01
Observe que las entradas con más de una palabra se agrupan mediante llaves. También proporcioné algunos títulos para la primera fila de la tabla fusionada.
Guarde estos archivos en su directorio de trabajo actual (el mismo que contiene su
.tex
archivo).Su
.tex
archivo debe tener el siguiente aspecto:\documentclass{article} \usepackage{pgfplotstable} \usepackage{booktabs} %\pgfplotsset{compat=1.10} % Read table1 \pgfplotstableread{table1.dat}{\loadedtablei} % Read table2 \pgfplotstableread{table2.dat}{\loadedtableii} % Create additional column for table1 containing % second column from table2 \pgfplotstablecreatecol[ copy column from table={\loadedtableii}{[index] 1}, ]{Valueb}{\loadedtablei} \begin{document} % Print the merged table \pgfplotstabletypeset[ string type, every head row/.style={before row=\toprule,after row=\midrule}, every last row/.style={after row=\bottomrule} ]{\loadedtablei} \end{document}
Procesar el documento anterior produce: