Подтвердить что ты не робот

Интеграция Java-R?

У меня есть приложение Java, которое должно выполнять частичную регрессию наименьших квадратов. Казалось бы, в нем нет реализации Java PLSR. В какой-то момент Ука, возможно, что-то вроде этого, но больше не в API. С другой стороны, я нашел хорошую реализацию R, которая имеет дополнительный бонус к ней. Он был использован людьми, результат которых я хочу воспроизвести, а это означает, что вероятность того, что все будет не так, из-за различий в способе реализации PLSR будет меньше.

Вопрос: есть ли достаточно хороший (и простой в использовании) пакет, который позволяет Java вызывать R, передавать некоторые параметры функции и считывать результаты? Моим другим вариантом является запуск Java Rwn R в Process, а затем его мониторинг. Данные считываются и записываются на диск. Какой из двух вы бы порекомендовали? Я пропустил очевидный третий вариант?

4b9b3361

Ответ 1

Я успешно использовал две альтернативы в прошлом.

JRI

  • Преимущества: возможно, более высокая производительность.
  • Концы: вам нужно настроить некоторые переменные среды и библиотеки, разные в Win/UNIX.

RServe

  • Преимущества: легко настроить, вам не нужно инициализировать R или ссылку против любая библиотека R, может работать на другой машине.
  • Против: на основе TCP/IP (сервер работает), никаких обратных вызовов из R.

Другие альтернативы Я никогда не использовал: RCaller

Ответ 2

Там была работа Дункана Храм Ланга: http://rss.acs.unt.edu/Rdoc/library/SJava/Docs/RFromJava.pdf.

Мое предположение о наиболее надежном решении было бы JGR. У разработчиков JGR есть список рассылки, Stats-Rosuda и список рассылки Архив показывает, что список остается активным с 2013 года.

Существует также код, который был помещен в Googlecode, с примером здесь: http://stdioe.blogspot.com/2011/07/rcaller-20-calling-r-from-java.html

Ответ 3

Это старый вопрос.. но для тех, кто просматривает здесь, что все еще интересно: я написал статью в блоге, в которой приводится подробный пример того, как использовать JRI/rjava (мост на основе JNI) для выполнения этого типа вещей (практическое руководство сосредоточено на средах Linux dev). Я также сравниваю и противопоставляю альтернативные подходы для создания "материи", вызывая R и аналогичные структуры.

URL > http://buildlackey.com/integrating-r-and-java-with-jrirjava-a-jni-based-bridge/

Ответ 4

Renjin - альтернатива, которая позволяет не только интегрировать множество пакетов R, но и легко переходить между Java и R через объекты:

http://www.renjin.org/

Ответ 5

JRI имеет как низкоуровневый, так и высокоуровневый интерфейс для вызова R с Java. Существует плагин eclipse, который помогает в настройке среды Java R на http://www.studytrails.com/RJava-Eclipse-Plugin/.

Ответ 7

Мне понадобилось некоторое время назад и протестировали несколько интерфейсов с R. Тот, который я нашел лучшим для моих нужд (windows, С#), был Rserve, который, я считаю, написан на Java. Моя единственная проблема заключается в том, что он не был 64-битным. Я использовал простой клиент, написанный на С#, и он работал очень хорошо. Я уверен, что клиент Java намного лучше.