R:dev.copy2pdf,多个图形设备到单个文件,如何追加到文件?

Tim*_*ico 6 r

我有一个制作条形图的脚本,当有6个条形图写入屏幕并在必要时不断打开新的图形设备时打开一个新窗口.这取决于输入,这给我留下了潜在的大量开放窗口(图形设备),我想写入单个PDF文件.

考虑到我的Perl背景,我决定迭代不同的图形设备,逐个打印出来.我想继续附加一个PDF文件,但我不知道如何做到这一点,或者甚至可能.我想避免在R.中循环:)

我使用的代码:

for (i in 1:length(dev.list())
{
dev.set(which = dev.list()[i]
dev.copy2pdf(device = quartz, file = "/Users/Tim/Desktop/R/Filename.pdf")
}
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,因为它每次都会覆盖文件.现在在R中有一个追加函数,就像在Perl中一样.这允许我继续向现有的pdf文件添加页面?

或者有没有办法将图形窗口中的信息包含到对象中,并继续向该对象添加新的图形设备,最后将整个内容打印到文件中?

我想到的其他可能的解决方案:

  1. 编写不同的pdf文件,在创建后将它们组合起来(甚至可能在R中,安装了正确的库?)
  2. 将所有不同窗口中的信息复制到一个大图形设备,然后将其打印到pdf文件.

Dir*_*tel 5

快速评论:

  1. onefile=TRUE它获取通过传递给说法pdf(),请参阅帮助页面dev.copypdfpdf

  2. 作为一般规则,您可能会发现直接打开设备更容易; 再看看help(pdf)

总而言之,添加onefile=TRUE到你的电话,你应该没事,但考虑pdf()直接使用.