有没有办法让R
设备(后记会很棒)将输出写入变量而不是文件?
例如我知道这个:
postscript(file="|cat")
plot(1:10)
dev.off()
将后记文本发送到STDOUT
. 如何将该文本放入变量中R
?
我已经成功地将绘图的二进制作为字符串放入 R 变量中。它有一些读/写开销。在下面的代码片段中,R 将绘图保存为临时文件并将其读回。
## create a plot
x <- rnorm(100,0,1)
hist(x, col="light blue")
## save plot as temp file
png(filename="temp.png", width=500, height=500)
print(p)
dev.off()
## read temp file as a binary string
plot_binary <- paste(readBin("temp.png", what="raw", n=1e6), collapse="")
也许这对你有帮助。
postscript 接受一个命令参数,因此 postscript(file="",command="|cat")
你到底为什么要这么做?R 不是一个很好的处理 Postscript 文件的系统。如果没有别的,您可以使用 tempfile() 将图像写入文件,然后您可以使用标准文件函数读取该文件。如果你想花哨,你也许可以使用 fifo() 管道,但我怀疑它会快得多。但我怀疑你最好用不同的方法。
您应该能够按如下方式使用 textConnection。
tc <- textConnection("string", "w")
postscript(tc)
plot(1:10)
dev.off()
但string
仍然是空白 - 也许是一个错误?