используя R программирование в Java - PullRequest
22 голосов
/ 27 октября 2010

Мы работаем над сложным статистическим проектом Java. Мы сделали оригинальный код на языке программирования R . Есть ли способ преобразовать этот код в Java код (конвертер) или иным образом, как мы можем использовать R в Java проекте?

Ответы [ 4 ]

22 голосов
/ 27 октября 2010

Хотя я не знаю о «конвертере», существует интерфейс rJava, который позволит вам запускать R-код непосредственно из Java.

http://www.rforge.net/rJava/

rJava - это простой интерфейс R-to-Java. Это сопоставимо с .C / .Call C интерфейс. rJava обеспечивает низкий уровень мост между R и Java (через JNI). Позволяет создавать объекты, вызывать методы и поля доступа Java объекты из Р.

В некотором смысле обратная сторона rJava - это JRI (Интерфейс Java / R), который обеспечивает противоположное направление - вызов R из Джава. JRI теперь поставляется как часть пакет rJava, хотя он все еще может использоваться как отдельный объект (особенно для развития). В настоящее время rJava используется как часть JGR, iPlots и JavaGD Программное обеспечение / пакеты.

10 голосов
/ 05 августа 2013

Вы можете попробовать Renjin (http://www.renjin.org):

"Renjin - это интерпретатор на основе JVM для языка R для статистических вычислений. Этот проект является инициативой BeDataDriven, компании, предоставляющей консультации в области аналитики и систем поддержки принятия решений."

1 голос
/ 13 марта 2017

Как сказал @Seidr, используя rJava, мы можем запускать R-код непосредственно из методов Java.

  1. Откройте консоль R и установите пакет rJava

    install.packages("rJava")
    

    Теперь вы найдете rJava в " R home \ library "

  2. Теперь в затмении добавьте JRI.jar, JRIEngine.jar, REngine.jar к пути сборки проекта.Эти банки доступны в " R home \ library \ rJava \ jri "

  3. Создать объект Rengine.
  4. Теперь создайте два вектора, добавьте их и сохраните в другой переменной.Теперь напечатайте эту переменную результата в консоли.

    Rengine engine = new Rengine(new String[]{"--no-save"},false,null);
    String aVector = "c(1,2,3)";
    String bVector = "c(4,5,6)";
    engine.eval("a<-"+aVector);
    engine.eval("b<-"+bVector);
    engine.eval("c<-a+b");
    
    System.out.println("Sum of two vectors : c = "+engine.eval("c"));
    

Надеюсь, что ссылка ниже (пошаговая процедура для интеграции R в Java).

http://www.codophile.com/how-to-integrate-r-with-java-using-rjava/

0 голосов
/ 26 июня 2018

Другой вариант для запуска R на JVM - FastR .Согласно документации FastR:

FastR является реализацией языка R на Java поверх Truffle, платформы для построения самооптимизирующихся интерпретаторов AST.

В настоящее время FastR доступен в двух формах:

  • В качестве готового бинарного файла с реализациями Ruby и JavaScript для Truffle для Linux и Mac OS X. К сожалению, пока нет версии для Windows.
  • В качестве исходного выпускана GitHub.Эта опция не поставляется с Ruby или JavaScript.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...