1

次のコードを使用してグラフを描画し、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

なぜこれが当てはまるのか、私にはわかりません。

4

3 に答える 3

4

問題は、--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 コマンドの実行を開始する前にすべてを忘れる必要があることを意味します。

于 2011-07-29T15:42:36.293 に答える
3

2つのこと:

1)ライブラリ(ggplot2)_in_your_script_があることを確認してください

2) ggplot オブジェクトを print() または plot() していることを確認してください。(FAQ 7.22 を参照してください) gg を節約しているので、これはこの例では問題ではないかもしれませんが、Rscript セッションのラティスまたは ggplot グラフィックスではよくある問題です。

于 2011-07-29T02:40:51.447 に答える
3

as.formula統計パッケージに含まれています。ロードされていない理由はわかりませんがlibrary(stats)、スクリプトの最初に手動で含めることで問題が解決するかどうかを確認してください。

于 2011-07-29T09:52:02.830 に答える