合并 csv 的列

合并 csv 的列

我尝试使用\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}

在此处输入图片描述

相关内容