我现在正致力于一个想要使用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。 我很想看到你的回答。 非常感谢。
答案 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)。我在会话开始时创建了这个文件夹,我很高兴。在我的情况下,这个文件夹的存在似乎有所帮助,但我不知道(还有!)该文件夹是什么。