次のように、行数とラベル数が同じ 2 つの別々のテーブルがあります。
1つ:
a 12
b 32
c 18
二:
a 45
b 98
c 300
これら 2 つのテーブルを 1 つに結合するにはどうすればよいでしょうか?
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
ファイルに配置したりすることができます。
ここでは、より現実的な例を挙げて、手順を段階的に説明します。
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
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
複数の単語を含むエントリは中括弧を使用してグループ化されていることに注意してください。また、結合されたテーブルの最初の行にいくつかの見出しを指定しました。
これらのファイルを現在の作業ディレクトリ(ファイルと同じディレクトリ
.tex
)に保存します。ファイル
.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}
上記のドキュメントを処理すると、次の結果が生成されます。