2

私は Java 内からいくつかの r コードを呼び出そうとしています。

private void makeMatrix() throws ScriptException {
    try {
        Runtime.getRuntime().exec(" Rscript firstscript.r");
        System.out.println("Script executed");
         } catch (IOException ex) {
       System.out.println("Exception");
       System.out.println(ex.getMessage());
    }

}

さて、「スクリプトが実行されました」という印刷が表示されます。

私の (実際には私のものではなく、テストのためだけに) r-コードは非常に単純で、ほとんど機能することを確認するだけです。

x=seq(0,2,by=0.01)
y=2*sin(2*pi*(x-1/4))
plot(x,y)

したがって、正弦波をプロットする以上のことはすべきではありません。

しかし、プロットを実際に見ることができる何らかのポップアップがあるべきではありませんか? ないからです。私は何を間違っていますか?

編集:ここで得たコメントに応えて、r-ファイルを編集し、次を追加しました:

jpeg('rplot.jpg')
plot(x,y)
dev.off()

それに。

ただし、システムで rplot.jpg を見つけようとすると、そこにはありません。

4

2 に答える 2

2

関数に相対ディレクトリを渡しましたjpeg。これにより、R の現在の作業ディレクトリ (によって返される値getwd) に対して相対的になります。

この値を印刷して、それがどこにあるかを確認してみてください (Windows では、デフォルトで現在のユーザーの「マイ ドキュメント」にあります)。

print(getwd())

または絶対パスをに渡しますjpeg

jpeg('c:/rplot.jpg')
plot(x,y)
dev.off()

絶対パスを取得するには、pathological::standardize_pathまたはを使用しますR.utils::getAbsolutePath

于 2013-09-02T14:22:09.553 に答える