2

我现在正在开发一个项目,该项目希望使用 org.rosuda.REngine.Rserve 通过 C# 使用 R 的设施。当我在 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

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

4

2 回答 2

0

试试这个代码: -

c.eval("dev.off()")
于 2014-06-19T20:16:12.730 回答
0

一个名为的文件夹(null).1001.1001


无法打开文件''的相关答案 ,原因没有此类文件或目录 建议使用作为创建具有平台独立路径分隔符的文件名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 在 Linux 上以 uid 1001、gid 1001 运行)的神秘文件夹。我在会话开始时创建了这个文件夹,我可以开始了。这个文件夹的存在似乎对我有帮助,但我不知道(还不知道!)那个文件夹是什么。

于 2016-01-15T19:27:16.093 回答