我使用以下代码绘制图表并将其打印为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
我不知道为什么会这样。
答案 0 :(得分: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命令之前应该忘记所有内容,包括一些已安装的软件包。
答案 1 :(得分:3)
两件事:
1)确保你有图书馆(ggplot2)_in_your_script _
2)确保你打印()或绘图()ggplot对象。 (参见FAQ 7.22)这可能不是这个例子中的问题,因为你是gg-saving,但这是来自Rscript会话的格子或ggplot图形的常见问题。
答案 2 :(得分:3)
as.formula
位于统计资料包中。不知道为什么没有加载,但是看看在脚本开头手动包含library(stats)
是否解决了问题。