我有一张从文件中读取的表,我想仅显示给定列中具有特定值的行。特定值是一个字符串(例如农业)。如果该值是整数,我可以使用以下代码来执行此操作:
\pgfplotstabletypeset[row predicate/.code={%
\pgfplotstablegetelem{#1}{variable}\of{test.txt}
\ifnum\pgfplotsretval=3\relax
\else\pgfplotstableuserowfalse\fi}]{test.txt}
我想要匹配的值是“农业”。我尝试使用 \if 和 \ifx,但没有成功。
任何意见都有帮助!谢谢!
编辑:
梅威瑟:
\documentclass{article}
\usepackage{float}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstabletypeset[row predicate/.code={%
\pgfplotstablegetelem{#1}{variable}\of{test.txt}
\ifnum\pgfplotsretval=3\relax
\else\pgfplotstableuserowfalse\fi}]{test.txt}
\end{document}
测试.txt:
variable 2016 2017 2018
2 0.16519 0.1519385 0.1924408
Agricultural 0.4751213 0.3346962 0.2863951
3 0.0868261 0.1613692 0.2666448
3 0.4510618 0.5404901 0.5006156
答案1
您可以使用string type
列样式variable
,然后将其作为字符串进行测试,就像这样egreg 的回答。
\documentclass{article}
\usepackage{float}
\usepackage{pgfplotstable}
\usepackage{etoolbox}
\usepackage{filecontents}
\begin{filecontents*}{test.txt}
variable 2016 2017 2018
2 0.16519 0.1519385 0.1924408
Agricultural 0.4751213 0.3346962 0.2863951
3 0.0868261 0.1613692 0.2666448
3 0.4510618 0.5404901 0.5006156
\end{filecontents*}
\begin{document}
\pgfplotstableread{test.txt}\mytable
\pgfplotstabletypeset[
columns/variable/.style={string type},
row predicate/.code={%
\pgfplotstablegetelem{#1}{variable}\of{\mytable}
% code from https://tex.stackexchange.com/a/22924/101651
\ifnum\pdfstrcmp{\pgfplotsretval}{Agricultural}=0\relax
\else\pgfplotstableuserowfalse\fi}
]{\mytable}
\end{document}