在 pdf 中存储图时,R 会/tmp/RtmpFKQqjI/pdf317d27df81a0
为每个图生成一个临时文件(例如 )。在将许多绘图绘制到 pdf 中后,我的/tmp分区内存不足并且 R 停止工作(我的桌面也冻结了)。
小代码示例:
for (i in 1:10) {
pdf(file=paste(i, ".pdf", sep=""))
plot(1:10)
dev.off()
}
list.files(path=tempdir(), pattern="^pdf.", full.names=TRUE)
# [1] "/tmp/RtmpFKQqjI/pdf317d27df81a0" "/tmp/RtmpFKQqjI/pdf317d28ed0612"
# [3] "/tmp/RtmpFKQqjI/pdf317d295c2453" "/tmp/RtmpFKQqjI/pdf317d304bb025"
# [5] "/tmp/RtmpFKQqjI/pdf317d3332d7fe" "/tmp/RtmpFKQqjI/pdf317d3921428f"
# [7] "/tmp/RtmpFKQqjI/pdf317d4cf812ca" "/tmp/RtmpFKQqjI/pdf317d5082bebe"
# [9] "/tmp/RtmpFKQqjI/pdf317d560d326" "/tmp/RtmpFKQqjI/pdf317d674b25ea"
(相同的结果pdf(file="Rplots%03d.pdf"); for (i in 1:10) { ... }; dev.off()
。)
为什么 R 在调用后不删除这个临时文件dev.off()
?
作为一种解决方法,我在每个之后添加以下行dev.off()
:
unlink(list.files(path=tempdir(), pattern="^pdf.", full.names=TRUE))
有没有更好的办法?