【发布时间】:2012-09-14 02:43:33
【问题描述】:
我现在正在开发一个项目,该项目希望使用 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。 我很想看到你的回复。 非常感谢。
【问题讨论】:
-
我刚刚遇到了这个问题,看起来完全一样。只是想知道您是否有机会继续前进?
-
我记得我通过重新启动 Rserve 引擎并在 "pdf(...); plot(...)" 之后每次调用 c.eval("dev.off()") 来解决这个问题陈述。好像是上次没有正确关闭设备造成的。如果您仍然发现一些问题,您可以尝试使用 c.voidEval 而不是 c.eval。我发现一些 r 语句无法在 eval 函数中正确运行。希望我的回答对您有所帮助。