2012-09-14 185 views
2

我现在正在使用org.rosuda.REngine.Rserve使用C#使用R的工具。我有一个特别的问题,当我运行在C#客户端下面的代码:使用REngine.Rserve时出现错误()错误

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

错误occour该说

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

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

+0

我刚刚遇到问题,看起来完全一样。只是想知道你是否有机会在这方面取得进展? – Datageek

+2

我记得我通过重新启动Rserve引擎并每次在“pdf(...); plot(...)”语句后调用c.eval(“dev.off()”)来解决此问题。看来这个错误是由于上次没有正确关闭设备造成的。如果你仍然发现一些问题,你可以尝试c.voidEval而不是c.eval。我发现一些r语句无法在eval函数中正确运行。希望我的回答是有帮助的。 – fishfish311

回答

0

试试这个代码: -

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

这也是在评论中提到的,不是吗? – rene

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)。我在会议开始时创建了这个文件夹,我很开心。这个文件夹的存在似乎有助于我的情况,但我不知道(还!)那个文件夹是什么。

相关问题