將兩個表合併為一個表

將兩個表合併為一個表

我有兩個單獨的表,其行數和標籤數相同,如下所示:

一:

a  12
b  32 
c  18

二:

a  45 
b  98
c  300

我怎樣才能將這兩個表合併為一個?如下:

a 12 45
b 32 98
c 18 300

感謝 Elisheva

答案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}
    

處理上述文件產生:

在此輸入影像描述

相關內容