Rscript ggplot - проблема ggsave - PullRequest
1 голос
/ 29 июля 2011

Я использую следующий код, чтобы нарисовать график и распечатать его в PDF:

ggplot(agg_data_cl, aes( as.Date(date), avg_entries, color = classification ) ) +
  geom_point()

ggsave(file = "output.pdf")

Это прекрасно работает, когда я выполняю скрипт в TextMate.

Но когда я вызываюэто из командной строки через RScript Я получаю следующую ошибку:

Error in all.vars(as.formula(.$facets)) : 
  could not find function "as.formula"
Calls: print ... <Anonymous> -> <Anonymous> -> <Anonymous> -> all.vars
Execution halted

Я использую следующий заголовок в моем файле RScrpipt:

#! /usr/local/bin/Rscript --vanilla --default-packages=utils

Есть идеи, в чем может быть проблема?

Вот моя информация о сеансе командной строки:

R version 2.13.1 (2011-07-08)
Platform: x86_64-apple-darwin10.8.0 (64-bit)

locale:
[1] C/UTF-8/C/C/C/C

attached base packages:
[1] grid  utils base 

other attached packages:
[1] ggplot2_0.8.9 proto_0.3-9.2 reshape_0.8.4 plyr_1.5.2   

loaded via a namespace (and not attached):
[1] grDevices_2.13.1 graphics_2.13.1  stats_2.13.1

В textmate sessionInfo () дает мне больше прикрепленных базовых пакетов:

attached base packages:
[1] grid      stats     graphics  grDevices utils     datasets  methods  
[8] base

Я понятия не имею, почему это так.

Ответы [ 3 ]

4 голосов
/ 29 июля 2011

Проблема была в опции --vanilla при вызове Rscript.

Вот что Rscript --help говорит о своих опциях

--save              Do save workspace at the end of the session
--no-environ        Don't read the site and user environment files
--no-site-file      Don't read the site-wide Rprofile
--no-init-file      Don't read the user R profile
--restore           Do restore previously saved objects at startup
--vanilla           Combine --no-save, --no-restore, --no-site-file
                    --no-init-file and --no-environ

.. и --vanilla в основном означаетчто Rscript должен все забыть, прежде чем он начнет выполнять команды R, включая некоторые из установленных пакетов.

3 голосов
/ 29 июля 2011

as.formula находится в пакете статистики.Не уверен, почему он не загружается, но посмотрите, исправляет ли проблема вручную, включая library(stats) в начале вашего скрипта.

3 голосов
/ 29 июля 2011

Две вещи:

1) Убедитесь, что у вас есть библиотека (ggplot2) _in_your_script_

2) Убедитесь, что вы печатаете () или печатаете () объект ggplot. (См. FAQ 7.22). В данном случае это может не быть проблемой, поскольку вы сохраняете gg, но это общая проблема с решеткой или графикой ggplot из сеансов Rscript.

...