如何避免绘制整个脚本?

时间:2013-09-18 18:22:15

标签: r

我在linux(LMDE)上。

我有这个脚本,用经典图形和ggplot绘制很多东西。有时我也会调用pdf()png(),但有时我会弹出默认的grDevice并为我显示它(RStudioGD或x11())

问题是,当我从另一个用户(在我的情况下,apache www-data)从Rscript执行此脚本时,它可能会引发权限问题,特别是对于默认设备,当我没有预加载任何其他设备时。 (例如:Error in (function (file = ifelse(onefile, "Rplots.pdf", "Rplot%03d.pdf"), : cannot open file 'Rplots.pdf' Calls: source ... barplot -> barplot.default -> dev.hold ->

我希望能够在我的脚本的开头(和结尾)只丢弃一行或两行来丢弃任何这些图(甚至所有图)。像nullDevice() / script / dev.off()这样的东西可以确保至少将默认图表传送到无害的东西。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我没见过这样的设施。通常做的是使用interactive函数测试代码运行的条件,该函数仅在交互式会话中返回TRUE:

 if (interactive() ){  pdf("myPlot.pdf")
   plot(1:10)
   dev.off()        }

 ?Devices