使用REngine.Rserve时出现Plot()错误

时间:2012-09-14 02:43:34

标签: r plot rserve

我现在正致力于一个想要使用org.rosuda.REngine.Rserve来使用R by C#的设施的项目。我有一个特殊的问题,当我在C#客户端运行以下代码时:

c.eval("pdf(file=\"plots.pdf\", width=11, height=8.5)");
c.eval("plot(1,2)");

出现错误,

Error in plot.new():cannot open file '', reason No such file or directory

但是我检查过“pdf ..”函数已经成功创建了文件“plots.pdf”。在R语义中,连续的plot()将图形输出到由“pdf(...)”函数打开的有效设备,即这次是“plots.pdf”。但我很困惑,为什么错误表明该文件是''。 我在linux服务器端使用R-2.15.0和Rserve-1.7.0。 我很想看到你的回答。 非常感谢。

2 个答案:

答案 0 :(得分:0)

试试这段代码: -

c.eval("dev.off()")

答案 1 :(得分:0)

名为 (null).1001.1001

的文件夹

相关答案在 Cannot open file '', reason No such file or directory 建议使用file.path替代paste来创建具有独立于平台的路径分隔符的文件名。

评论建议dev.off()。我对graphics.off()好运。区别在于dev.close()关闭当前设备,graphics.off()关闭所有打开的设备。

但我的解决方案原来是 https://askubuntu.com/questions/721485/what-is-folder-null-1001-1001 我找到了一个名为(null).1001.1001的神秘文件夹(Rserve在uid 1001上运行,在Linux上运行gid 1001)。我在会话开始时创建了这个文件夹,我很高兴。在我的情况下,这个文件夹的存在似乎有所帮助,但我不知道(还有!)该文件夹是什么。