Как получить исходный файл .R без вывода - PullRequest
1 голос
/ 13 сентября 2009

Можно ли получить файл без печати всех диаграмм и т. Д. (Уже пробовал с echo = F)?

В моем случае я вызываю устройство png ("filename% 03d.png") в начале скрипта. Комментировать это не очень сложно - но все графики требуют много времени для рендеринга. (конкретный файл, с которым я сейчас работаю, использует базовую графику - но в основном я буду использовать ggplot2 - что делает проблему несколько более важной (ggplot2 отлично, но в текущей реализации не самая быстрая))

Спасибо

Ответы [ 4 ]

3 голосов
/ 13 сентября 2009

Это не проблема для ggplot2 или решетчатой ​​графики - вам всегда нужно явно print их, когда они вызываются в неинтерактивных настройках (например, из скрипта).

2 голосов
/ 14 сентября 2009

Хорошая практика для кодирования R означает завершение как можно большей части вашего кода в функции. (См., Например, главу 5 R Inferno , pdf.) Если вы помещаете свой код построения в функцию, он не должен отображаться при его исходном коде. Сравните следующее.

Файл foo.r содержит

plot(1:10)

Когда вы звоните source('foo.r'), отображается график.

Файл bar.r содержит

bar <- function() plot(1:20)

Когда вы звоните source('bar.r'), сюжет не отображается. Вы можете отобразить его по своему усмотрению, набрав bar() в командной строке.

1 голос
/ 13 сентября 2009

Возможно, это может помочь ...

"Пакет, который предоставляет нулевое графическое устройство; содержит виньетку" devNull ", которая документирует, как создать новое графическое устройство в виде пакета надстроек."

из http://developer.r -project.org /

0 голосов
/ 13 сентября 2009

Это не лучшее решение для звучания, но если вы часто запускаете этот скрипт, как этот, вы можете объявить логическое значение, требуется ли графика (graphics_required = TRUE), а затем заключить все ваши команды построения в предложения if / then на основе ваше логическое значение, затем просто измените логическое значение, чтобы изменить поведение скрипта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...