3

Rで作成したプログラムがあります。RGUIから実行すると、結果が出力されます。

そのプログラムをJavaから実行する方法はありますか?

4

3 に答える 3

6

これらの3つのプロジェクトをご覧になることをお勧めします。

于 2012-04-25T15:47:17.567 に答える
2

他の環境からRコードを実行する最も簡単な可能性の1つは、RESTWebサービスだと思います。

たとえば、次の関数を持つexample.RというRスクリプトがあるとします。

#* @get /hello
hello <- function() {
  print("hello")
}

次を実行できます。

library(plumber)
r <- plumb("example.R")
r$run(port=8080)

その後、ページを呼び出す場合

http://localhost:8080/hello

Rコードが実行されます。

Javaから実行する場合、解決策は次のようになります。

   URL url = new URL("http://localhost:8080/hello");
   URLConnection connection = url.openConnection();
   BufferedReader br = new BufferedReader(new InputStreamReader( (connection.getInputStream())));
   String result = br.readLine();
于 2018-02-19T09:15:41.007 に答える
1

また、JVM上に実装されたRエンジンであるFastRを使用することもできます。Javaからの使用は、次のように簡単です。

Context context = Context.newBuilder("R").allowAllAccess(true).build();
int result = context.eval("R", "sum").execute(new int[] {3,4,5}).asInt();
context.eval("R", "print('you can eval any R code here');");

これは、 JavaからRにデータを渡し、それをのように見せるための方法の例ですdata.frameこれは、RグラフィックをJavaGraphics2Dオブジェクトにリダイレクトする方法の別の例です。

より詳細な説明はこの記事にあります:https ://medium.com/graalvm/faster-r-with-fastr-4b8db0e0dceb

およびGraalVMWebサイト:http ://graalvm.org

于 2019-01-16T11:32:28.047 に答える