似乎无法在R

时间:2015-11-02 19:35:58

标签: r pdf jupyter

我正在使用在OSX中运行R内核(3.2.2)的Jupyter笔记本,完成一些基本的统计练习。几天前,我第一次玩ggplot,并从笔记本电脑中运行一些命令,尝试打印到pdf文件,换句话说,使用以下内容:pdf("file.pdf"); plot(x, y); dev.off()我没有保留任何那些单元格的内容,所以我无法确切地看到我的运行但是我想我可以创建一些pdf并且没有包含dev.off()命令?

我的问题是,自那个会话以来,现在我在任何笔记本中运行的每个单元格(包括新的空白单元格)都会生成不需要的pdf文件。如果该代码涉及绘制图形,则pdf包含该图形,如果代码是其他任何内容,则无法打开创建的pdf。我无法找到任何方式,优雅或野蛮,以阻止这些pdf被创建。

如果我去一个新的空白笔记本:

正在运行dev.list()会返回pdf: 2
正在运行dev.cur()会返回pdf: 2
正在运行dev.off()会返回null device: 1

但是,如果紧接着,我再次运行dev.list()dev.cur(),他们又会返回pdf: 2

我可以打开其他新设备,dev.off()成功关闭它们。但是这个pdf: 2设备不会消失。我尝试终止所有会话,重新启动我的机器等等,但无济于事;建议?

此外,如果我从终端的控制台运行pdf()命令(即,不是从笔记本电脑),我的图显示由Quartz生成;我知道这可能是一个Quartz问题而不是R问题,但我的问题仍然存在,如何关闭此设备,或以其他方式阻止所有这些pdf被创建?

2 个答案:

答案 0 :(得分:0)

sink()已打开但未关闭时,这可能是一个问题,可能是因为在达到结束代码之前发生了错误。

尝试使用此插头打开水槽:

sink(NULL)
ht @mdsumner

答案 1 :(得分:0)

class="img-fluid"

应强制关闭所有设备。请查看this page,以获取更多有用的信息。