%3F.png)
На языке статистического программированияR
, существуют две разные формы представления данных.широкая формавыглядит следующим образом:
subject time age weight height
1 John Smith 1 33 90 1.87
2 Mary Smith 1 NA 55 1.54
Theдлинная формавыглядит следующим образом:
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
Источник примера: Хэдли Уикхэмбумага. Но обратите внимание, что я изменил вес Мэри на 55, тогда как раньше он был NA.
Можно ли прочитать текстовый файл в длинном формате и построить график, например, зависимости роста от веса?
\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
в широкой форме, которыйpgfplotsможет читать. Было бы удобнее, если бы pgfplots мог читать и обрабатывать in.txt
напрямую, не требуя от меня ручного запуска convert.R
.
решение1
[конвертировано из моего комментария]:
pgfplotstable
поставляется без поддержки "длинной формы". Если вам нужен некий скрипт преобразования, который не зависит от R, вы можете рассмотреть написание скрипта TeX (основанного на pgfplotstable
базовом программировании TeX) или, возможно, скрипта LUA. Или вы вызываете свой R
скрипт через shell escape или через\addplot shell