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

しかし、「pdf..」関数によって「plots.pdf」というファイルが既に正常に作成されていることを確認しました。R セマンティクスでは、連続する plot() は、「pdf(...)」関数、つまり今回は「plots.pdf」によって開かれたアクティブなデバイスに Figure を出力します。しかし、エラーがファイルが「」であることを示した理由について、私は非常に混乱しています。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


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 は Linux で uid 1001、gid 1001 として実行されています) という名前の不思議なフォルダーを見つけました。セッションの開始時にこのフォルダーを作成し、準備完了です。私の場合、このフォルダーの存在が役立つようですが、そのフォルダーが何であるかは (まだ!) わかりません。

于 2016-01-15T19:27:16.093 に答える