%20%E3%81%AE%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8B%E3%82%89%E3%83%97%E3%83%AD%E3%83%83%E3%83%88%E3%81%97%E3%81%BE%E3%81%99%E3%81%8B%3F.png)
統計プログラミング言語では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.R
in.txt
out.txt
pgfプロットin.txt
読み取ることができます。手動で実行しなくても、pgfplots が直接読み取って処理できればもっと便利ですconvert.R
。
答え1
[私のコメントから変換]:
pgfplotstable
「長い形式」はサポートされていません。Rから独立した変換スクリプトが必要な場合は、TeXスクリプト(pgfplotstable
基本的なTeXプログラミングに基づく)またはLUAスクリプトの作成を検討してください。または、R
シェルエスケープまたは\addplot shell