PGFplotstable:跳过包含 nan 的行

PGFplotstable:跳过包含 nan 的行

请原谅,但我找不到答案。我有一些文本文件,组织方式如下,我使用 pgfplotstable 将其排版成表格

\documentclass[border=1pt]{standalone}
\usepackage{pgfplotstable}
\pgfplotstableread{
no A B C D
1  2 3 4 3
2  nan nan nan 4
3  2 3 4 5
4  2 3 4 6
5  2 3 4 7
6  nan nan nan 8
7  2 3 4 9
}\datatable

\begin{document}
\pgfplotstabletypeset[header=true,columns={no,A,B,C}]\datatable
\end{document}

有什么方法可以跳过包含 nan 的行,而无需对跳过进行硬编码?我猜答案在行谓词/.code={} 的某个地方,但我无处可去。

答案1

我现在觉得自己很蠢。毕竟我还是解决了这个问题。

    \documentclass[border=1pt]{standalone}
    \usepackage{pgfplotstable}
    \pgfplotstableread{
    no A B C D
    1  2 3 4 3
    2  nan nan nan 4
    3  2 3 4 5
    4  2 3 4 6
    5  2 3 4 7
    6  nan nan nan 8
    7  2 3 4 9
    }\datatable
    
    \begin{document}

\pgfplotstabletypeset[
col sep=tab,
header=true,
row predicate/.code={%
    \pgfplotstablegetelem{#1}{A}\of{\datatable}
    \pgfmathfloatparsenumber{\pgfplotsretval}
    \let\A=\pgfmathresult
    \pgfmathfloatgetflagstomacro\A\flags
    \ifnum\flags=3\relax\pgfplotstableuserowfalse
    \else\relax\fi}]{\datatable}
\end{document}

有谁知道我如何定义一个命令来跳过序言中的 nan 行?

我试过

\newcommand{skipnans}[3]{
row predicate/.code={%
    \pgfplotstablegetelem{#1}{#2}\of{#3}
    \pgfmathfloatparsenumber{\pgfplotsretval}
    \let\A=\pgfmathresult
    \pgfmathfloatgetflagstomacro\A\flags
    \ifnum\flags=3\relax\pgfplotstableuserowfalse
    \else\relax\fi}

使用\skipnans{#1,A,\datatable}会产生额外的 } 错误

相关内容