我有一个R脚本,使用ggsave保存一些图.当我从命令行运行脚本时,它不仅保存我的图,而且还保存一个空的Rplots.pdf文件.如何防止R创建这个不必要的文件?
这是一个重现错误的示例脚本:
#!/usr/bin/env Rscript
# Code that creates unnecessary Rplots.pdf file
library(ggplot2)
my.data <- data.frame(x = 1:10, y = 1:10)
my.plot <- qplot(x, y, data = my.data)
ggsave('example.png', my.plot)
Run Code Online (Sandbox Code Playgroud)
以下所有运行脚本的方法都会创建不必要的文件:
Rscript script.R
Rscript --vanilla script.R
chmod a+x script.R
./script.R
Run Code Online (Sandbox Code Playgroud)
此外,当我从交互式会话中获取代码时,将打开一个不必要的空白R图形设备窗口.
此外,如果我使用以下更详细的代码代替ggsave,我没有这些问题:
#!/usr/bin/env Rscript
# Code that does NOT create unnecessary Rplots.pdf file
library(ggplot2)
my.data <- data.frame(x = 1:10, y = 1:10)
my.plot <- qplot(x, y, data = my.data)
png(file = 'example.png')
print(my.plot)
dev.off()
Run Code Online (Sandbox Code Playgroud)
这是我的会话信息(无论是运行Rscript还是以交互方式运行):
R version 3.0.1 (2013-05-16)
Platform: x86_64-pc-linux-gnu …Run Code Online (Sandbox Code Playgroud)