R из Java

Каков наилучший способ вызова функции R из Java?

Я ищу быстрый, простой и надежный способ сделать стандартные 2D-диаграммы и гистограммы в R, используя мои Java-приложения. Мне было интересно, какие пакеты / интерфейсы, возникшие в результате быстрого поиска Google, будут наиболее удобны в использовании.

Я с нетерпением жду ваших предложений!

Используйте JRI: http://www.rforge.net/JRI/ . Он поставляется в комплекте с rJava, включая некоторые примеры использования.

Очень простой пример:

import java.io.*; import java.awt.Frame; import java.util.Enumeration; import org.rosuda.JRI.Rengine; import org.rosuda.JRI.REXP; import org.rosuda.JRI.RVector; import org.rosuda.JRI.RMainLoopCallbacks; public class rJavaTest { public static void main(String[] args) { Rengine re=new Rengine(args, false, new TextConsole()); REXP x; re.eval("print(1:10/3)"); System.out.println(x=re.eval("iris")); RVector v = x.asVector(); if (v.getNames()!=null) { System.out.println("has names:"); for (Enumeration e = v.getNames().elements() ; e.hasMoreElements() ;) { System.out.println(e.nextElement()); } } if (true) { System.out.println("Now the console is yours ... have fun"); re.startMainLoop(); } else { re.end(); System.out.println("end"); } } } 

Есть что-то новое, называемое http://www.renjin.org/

Одна вещь, которая мне нравится в JRI – это развертывание. Хотя jri требовало, чтобы ваши приложения загружали R, renjin этого не делает, и он использует только JVM для запуска.

Я обнаружил, что форсирование R в качестве процесса, присоединение к streamам stdin, stdout и stderr процесса и отправка R-команд через входной stream, чтобы быть достаточно эффективными. Я использую файловую систему для связи между R и моим процессом Java. Таким образом, я могу иметь несколько процессов R, выполняющихся из разных streamов Java, и их среды не конфликтуют друг с другом.

Пакеты или библиотеки для R с Java

Вызов R из Java

  • RCaller
  • Rserve
  • ИСР
  • Rsession
  • Renjin

Вызовите Java из R

  • rJava
  • Как преобразовать данные XML в data.frame?
  • Добавление столбца между двумя столбцами в файле data.frame
  • Отобразить точное значение переменной в R
  • «Правильный» способ указать необязательные аргументы в R-функциях
  • Как добавить количество наблюдений на группу и использовать групповое значение в блоке ggplot2?
  • Почему петли медленны в R?
  • Свертывание кадра данных путем выбора одной строки для каждой группы
  • Совокупные ежедневные данные по месяцам / годам
  • Альтернатива Python xrange для R ИЛИ как петляться над большим набором данных lazilly?
  • Суммируйте список матриц
  • Объединить столбец для удаления NA
  • Interesting Posts

    Дублирующий идентификатор, тег null или родительский идентификатор с другим fragmentом для com.google.android.gms.maps.MapFragment

    Выделение синтаксиса Razor не работает в VS 2012 с MVC 5

    Использование расширенных наборов параметров в функции с несколькими уникальными переключателями

    Измените тип столбца в sqlite3

    Использовать кнопочную кнопку Android 4.0

    Можно ли расшифровывать несколько жестких дисков при загрузке FDE?

    Выделение синтаксиса в Microsoft Office Word

    Автозаполнение JComboBox

    Ограничение доступа для детей и полей с помощью правил безопасности

    JAX-RS Сообщение нескольких объектов

    Используя lapotop как точку доступа, используя окна 7

    Можно ли добавить Легенду к сюжету в JFreeChart?

    Как связаться с сервисом Windows из приложения, которое взаимодействует с рабочим столом?

    Службы Google Play устарели. Требуется 10084000, но найдено 9879470. Не удается обновить

    Как сделать прослушиватель прокрутки для WebView в Android

    Давайте будем гением компьютера.