Mit pgfplots aus einer Textdatei im Langformat (vs. Breitformat) plotten?

Mit pgfplots aus einer Textdatei im Langformat (vs. Breitformat) plotten?

In der statistischen ProgrammierspracheRgibt es zwei verschiedene Formen der Datendarstellung. Diebreite Formsieht wie folgt aus:

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

Derlange Formsieht wie folgt aus:

     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

Quelle des Beispiels: Hadley WickhamsPapier. Beachten Sie jedoch, dass ich Marys Gewicht auf 55 geändert habe, vorher war es NA.

Ist es möglich, eine Textdatei im Langformat einzulesen und beispielsweise die Körpergröße gegen das Gewicht aufzuzeichnen?

\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}

Der Grund, warum ich diese Frage stelle, ist, dass ich die Ausgabe eines Computersimulationsprogramms darstellen möchte, das ich geschrieben habe, und es ist einfacher, es in Langform auszugeben als in Breitform. Derzeit verwende ich ein RSkript convert.R, um die Textdatei in.txtin Langform einzulesen und sie in eine Textdatei out.txtin Breitform umzuwandeln, waspgfplotslesen kann. Es wäre praktischer, wenn pgfplots es irgendwie in.txtdirekt lesen und verarbeiten könnte, ohne dass ich es manuell ausführen müsste convert.R.

Antwort1

[aus meinem Kommentar konvertiert]:

pgfplotstablekommt ohne Unterstützung für die "lange Form". Wenn Sie ein Konvertierungsskript wünschen, das unabhängig von R ist, können Sie ein TeX-Skript (basierend auf pgfplotstablegrundlegender TeX-Programmierung) oder vielleicht ein LUA-Skript schreiben. Oder Sie rufen Ihr RSkript per Shell-Escape oder über\addplot shell

verwandte Informationen