pgfplots を使用して、長い形式 (ワイド形式ではなく) のテキスト ファイルからプロットしますか?

pgfplots を使用して、長い形式 (ワイド形式ではなく) のテキスト ファイルからプロットしますか?

統計プログラミング言語ではRデータの表現には2つの異なる形式があります。ワイドフォーム次のようになります。

     subject time age weight height
1 John Smith    1  33     90   1.87
2 Mary Smith    1  NA     55   1.54

長い形式次のようになります。

     subject variable value
1 John Smith     time  1.00
2 Mary Smith     time  1.00
3 John Smith      age 33.00
4 Mary Smith      age    NA
5 John Smith   weight 90.00
6 Mary Smith   weight 55.00
7 John Smith   height  1.87
8 Mary Smith   height  1.54

例の出典: Hadley Wickham'sただし、メアリーの体重を以前は NA だったのに 55 に変更したことに注意してください。

長い形式のテキスト ファイルを読み込み、たとえば身長と体重をプロットすることは可能ですか?

\documentclass{standalone}

\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}
  % the following code doesn't work, but communicates the idea
  % of what I want to work
  \addplot [x variable=height,y variable=weight] {input.txt};
\end{axis}
\end{tikzpicture}
\end{document}

私がこの質問をする理由は、私が書いたコンピュータシミュレーションプログラムの出力をプロットしたいのですが、長い形式で出力した方がワイド形式よりも簡単だからです。現在、私は長い形式のテキストファイルを読み込み、それをワイド形式のテキストファイルに変換するRスクリプトを使用しています。convert.Rin.txtout.txtpgfプロットin.txt読み取ることができます。手動で実行しなくても、pgfplots が直接読み取って処理できればもっと便利ですconvert.R

答え1

[私のコメントから変換]:

pgfplotstable「長い形式」はサポートされていません。Rから独立した変換スクリプトが必要な場合は、TeXスクリプト(pgfplotstable基本的なTeXプログラミングに基づく)またはLUAスクリプトの作成を検討してください。または、Rシェルエスケープまたは\addplot shell

関連情報