一个最小的例子:
以下R脚本提供正确的输出:
png("test.png")
dev.cur() #quartz_off_screen 2
plot(1:10)
dev.off() #null device 1, file "test.png" generated in getwd()
但是,当我将这些代码包装在R markdown块中时,如果我将逐行发送到控制台,我会得到以下结果:
```{r}
png("test.png")
dev.cur() #null device 1
plot(1:10)#plot appears inline in the editor's pane
dev.off() #Error in dev.off() : cannot shut down device 1 (the null device)
# file "test.png" not generated
```
相同的代码运行正常并生成预期的文件,如果它不是逐行运行,而是使用运行当前块函数。
在遇到任何绘图函数时,似乎Rstudio内部调用“dev.new()”,因此它可以将所有绘图输出定向到编辑器的窗格。
我想知道这是否是Rstudio中的设计,以及其他用户是否发现这种行为不直观 - 我花了很长时间才找到问题的根源,因为无法打开png设备和输出像我以前那样的情节。
答案 0 :(得分:0)
您使用的是笔记本电脑版本。
http://rmarkdown.rstudio.com/r_notebooks.html#overview
您可以通过单击编辑器工具栏中的齿轮并在控制台中选择Chunk Output来禁用笔记本模式。