4

JavaRscriptから R スクリプト (別の開発者によって作成された) を実行する必要があり、そのためにRenjin. R スクリプト ファイルとその他の必要なファイルは、classpathつまり resources フォルダーの下にあります。

これを達成するためにRscript、クラスパスからロードしていますが、正常にロードされ、クラスパスにも存在Rscriptするファイルを内部的にロードしようとしますabc.Rda(Rスクリプトと並行)、同じコードは以下のとおりです

load('abc.Rda')

しかし、スクリプトを実行しようとすると、次のように例外がスローされます。

ファイルではないため、「file:///D:/data/{project-dir}/abc.Rda」から読み取れませんでした。

私が間違っているところを提案してください。

4

1 に答える 1

1

絶対パスを使用してもうまくいかなかった理由がわかりません。おそらく、スクリプトがsetwd(dir='/bad/{project-dir}')以前のどこかで間違って呼び出しているのでしょうか?

Renjin は、実際にはApache Virtual File System (VFS) を介してファイル システム操作を仲介します。したがって、特にクラスパス上のリソースが必要な場合は、「res:」プロトコルを使用できます。次に例を示します。

load('res:com/acme/mypackage/abc.Rda')

これは、ファイルが実際にファイルシステム上にあるか、jar またはその他のアーカイブの一部としてパッケージ化されているかに関係なく機能するはずです。

于 2016-07-08T20:54:59.417 に答える