我在一个名为的文件中有一个表dummy.txt
,其中包含以下数据:
value1 value2 value3
1 11 2.13652246624232
2 12 0.513442717554625
3 13 1.69712766271722
4 14 -1.57360405275275
5 15 0.784061900065905
我可以通过以下方式打印表格
\pgfplotstabletypeset[
col sep=tab,
columns={value2,value1}
]{dummy.txt}
是否有类似的简单方法来选择行的顺序和实际选择,就像选择列一样?
我看了一下手册,唯一接近的就是参数row predicate
,对于我选择行号 2、3 和 5 的目标来说,它似乎有点太强大了。而且我不知道如何在 TeX 中使用逻辑谓词。
答案1
“重新排序”听起来很像排序。事实上,您可以根据所需的顺序对表格进行排序 - 您只需要一个带有顺序值的其他(临时)列。当然,排序不会过滤。但您可以轻松地使用它来skip rows between index
过滤排序结果,因为不需要的条目可以很容易地排到最后:
\documentclass{standalone}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstabletypeset[
columns={value2,value1},
sort,sort key=sort order,
create on use/sort order/.style={
create col/set list={100,1,2,100,0},
},
skip rows between index={3}{100},
]{
value1 value2 value3
1 11 2.13652246624232
2 12 0.513442717554625
3 13 1.69712766271722
4 14 -1.57360405275275
5 15 0.784061900065905
}
\end{document}
此代码根据列中的值进行排序sort order
。此列不存在,将根据规范创建create on use/sort order
- 并且包含 5 个值的明确列表,每行一个。value1=5 的行接收 0,value1=2 的行接收 1,value1=3 的行接收 2 - 所有其他行均接收 100。您可以轻松添加columns={value2,value1,sort order}
以查看结果。
您提到这“只是一个示例表”。如果您有一个很大的表,这些create on use
内容很容易变得乏味。在这种情况下,您可能应该sort order
在表中添加一个“真实”列。