我尝试使用\pgfplotstabletypeset
,但没有成功。我有一个如下的 CSV 文件:
Name, Age, stDev
Adam, 15, 3
当我将其输出到 PDF 中时,我希望将最后两列合并,这样最终得到15 +/- 3
。我还想将该列命名为 Age。
答案1
我不知道如何使用pgfplotstable
,但这里是如何做到这一点datatool
:
编辑:已更新为四舍五入为 2 dp
\documentclass{article}
\usepackage{datatool}
\begin{filecontents*}{test.csv}
Name, Age, stDev
Adam, 15.00201, 3.00601
\end{filecontents*}
\DTLloaddb{mydata}{test.csv}
% Round to 2 dp and display.
% (More efficient to use \dtlround rather than \DTLround as the
% data doesn't involve currencies so no conversion is needed)
\newcommand{\round}[1]{\dtlround{#1}{#1}{2}#1}
\begin{document}
\begin{tabular}{ll}
\bfseries Name & \bfseries Age%
\DTLforeach{mydata}{\Name=Name,\Age=Age,\stDev=stDev}%
{%
\\\Name & $\round\Age\pm\round\stDev$
}%
\end{tabular}
\end{document}
结果:
答案2
您需要为此创建一个列规范。
\documentclass{article}
\usepackage{pgfplotstable}
\pgfplotstableread[col sep=comma]{
Name, Age, stDev
Adam, 15, 3
Eve, 12, 1
}\mytable
\begin{document}
\pgfplotstabletypeset[
create on use/unc age/.style={
create col/assign/.code={%
\edef\entry{\thisrow{Age}$\pm$\thisrow{stDev}}
\pgfkeyslet{/pgfplots/table/create col/next content}{\entry}
}
},
columns={Name,unc age},
columns/unc age/.style={column name=Age},
string type
]\mytable
\end{document}