问题:我正在尝试选择某些行,类似于这个问题使用 pgfplotstable 选择要显示的行,但我不确定该怎么做。我只想显示每 4 行。类似skip rows between index
但更自动化(文件相当长)。我尝试使用下面的代码,但我不知道如何输出每 4 行(从 1 开始(即:1、5、9 等)。我假设某种类型的数学运算符会起作用,但如何呢?
\documentclass{standalone}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstableread{
obs number
1 2
2 5
3 3
4 2
5 4
6 1
7 2
8 5
9 3
10 2
11 4
12 1
}\loadedtable
\pgfplotstabletypeset[
row predicate/.code={%
\pgfplotstablegetelem{#1}{obs}\of{\loadedtable}
\ifnum\pgfplotsretval=??\relax %Use some seq operator?
\else\pgfplotstableuserowfalse
\fi}
]{\loadedtable}
\end{document}
答案1
Mod
您可以对此使用常规操作。
\documentclass{standalone}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstableread{
obs number
1 2
2 5
3 3
4 2
5 4
6 1
7 2
8 5
9 3
10 2
11 4
12 1
}\loadedtable
\pgfplotstabletypeset[
row predicate/.code={%
\pgfplotstablegetelem{#1}{obs}\of{\loadedtable}
\pgfmathparse{int(Mod(\pgfplotsretval,4)}
\ifnum\pgfmathresult=0\relax
\else\pgfplotstableuserowfalse
\fi}
]{\loadedtable}
\end{document}