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