объединить две таблицы в одну

объединить две таблицы в одну

У меня есть две отдельные таблицы с одинаковым количеством строк и меток, как показано ниже:

один:

a  12
b  32 
c  18

два:

a  45 
b  98
c  300

как мне объединить эти две таблицы в одну? следующим образом:

a 12 45
b 32 98
c 18 300

спасибо Элишеве

решение1

Команда \pgfplotstablecreatecolотpgfplotstableПакет можно использовать здесь для добавления дополнительных столбцов в таблицу при ее создании:

\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}

введите описание изображения здесь

Как я уже упоминал в коде, этот filecontents*раздел приведен только в качестве примера; вы можете хранить таблицы, например, во внешних отдельных файлах или в своем фактическом .texфайле.

Вот более реальный пример, объясняющий процедуру шаг за шагом.

  1. Создайте файл, table1.datподобный этому:

    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
    
  2. Создайте файл, table2.datподобный этому:

    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
    

    Обратите внимание, что записи с более чем одним словом сгруппированы с помощью фигурных скобок. Также я предоставил некоторые заголовки для первой строки объединенной таблицы.

  3. Сохраните эти файлы в текущем рабочем каталоге (в том же, где находится ваш .texфайл).

  4. Ваш .texфайл должен иметь следующий вид:

    \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}
    

Обработка вышеуказанного документа дает:

введите описание изображения здесь

Связанный контент