r语言 - 使用 REngine.Rserve 时的 Plot() 错误



我现在正在做一个项目,该项目希望使用 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

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

试试这段代码:-

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

名为(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运行)。我在会话开始时创建了此文件夹,一切顺利。 这个文件夹的存在似乎对我的情况有所帮助,但我不知道(还!)那个文件夹是什么。

最新更新