我在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()
这样的东西可以确保至少将默认图表传送到无害的东西。
有什么想法吗?
答案 0 :(得分:1)
我没见过这样的设施。通常做的是使用interactive
函数测试代码运行的条件,该函数仅在交互式会话中返回TRUE:
if (interactive() ){ pdf("myPlot.pdf")
plot(1:10)
dev.off() }
?Devices