Integracja Java-R?

Mam aplikację Java, która musi wykonać częściową regresję najmniejszych kwadratów. Wydaje się, że nie ma tam implementacji Javy PLSR. Weka może kiedyś miał coś takiego, ale nie ma go już w API. Z drugiej strony znalazłem dobrą implementację R, która ma do tego dodatkowy bonus. Był używany przez ludzi, których wynik chcę replikować, co oznacza, że jest mniejsza szansa, że coś pójdzie nie tak z powodu różnic w sposobie, w jaki PLSR jest wdrożone.

Pytanie brzmi: czy istnieje wystarczająco dobry (i prosty w użyciu) pakiet, który umożliwia Javie wywoływanie R, przekazywanie niektórych parametrów do funkcji i odczytywanie wyników? Moja inna opcja to mieć Java spawn R w procesie, a następnie monitorować go. Dane będą odczytywane i zapisywane na dysk. Który z nich byś polecił? Czy przegapiłem oczywistą trzecią opcję?

Author: mbatchkarov, 2011-09-17

7 answers

W przeszłości z powodzeniem korzystałem z dwóch alternatyw.

JRI

  • plusy : prawdopodobnie lepsza wydajność.
  • Cons: musisz skonfigurować zmienne środowiskowe i biblioteki, inne w Win / UNIX.

RServe

  • plusy: Łatwy w konfiguracji, nie musisz inicjalizować R lub link przeciwko każda biblioteka R może działać na innej maszynie.
  • Cons : na podstawie TCP / IP (serwer działa), brak wywołań od R.

Inne alternatywy nigdy nie używałem: RCaller

 47
Author: Guido,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-13 14:59:03

Była praca Duncana Temple Lang: http://rss.acs.unt.edu/Rdoc/library/SJava/Docs/RFromJava.pdf .

Moim zdaniem najbardziej solidnym rozwiązaniem byłoby JGR . Twórcy JGR mają listę dyskusyjną, Stats-Rosuda i archiwum listy dyskusyjnej wskazuje, że lista pozostaje aktywna od 2013 roku.

Istnieje również kod, który został umieszczony w Googlecode , z przykładem proszę.: http://stdioe.blogspot.com/2011/07/rcaller-20-calling-r-from-java.html

 10
Author: 42-,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-10 18:08:50

To stare pytanie.. ale dla każdego, kto przegląda tutaj, który jest nadal zainteresowany: napisałem artykuł na blogu, który zawiera szczegółowy przykład użycia JRI / rjava (most oparty na JNI) do tego typu rzeczy (how-to koncentruje się na środowiskach programistycznych Linuksa). Porównuję i kontrastuję również alternatywne podejścia do robienia rzeczy "matematycznych", wzywając do R i podobnych frameworków.

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

 8
Author: Chris Bedford,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-21 23:48:56

Renjin jest alternatywą, która pozwala nie tylko na integrację wielu pakietów R, ale także na łatwą komunikację pomiędzy Javą i R poprzez obiekty:

Http://www.renjin.org/

 6
Author: juanmajmjr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-25 14:10:49

JRI ma zarówno niski jak i wysoki poziom interfejsu do wywoływania R z Javy. Istnieje plugin eclipse, który pomaga w konfiguracji środowiska R Java na http://www.studytrails.com/RJava-Eclipse-Plugin/.

 3
Author: user1569047,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-05 11:47:43

To wydaje się być stare pytanie. Jednak Rserve i rJava to dwa dobre pakiety do integracji R z Javą. Poniższe blogi wyjaśniają korzystanie z obu tych bibliotek.

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

Dla Rserve: http://www.codophile.com/how-to-integrate-r-with-java-using-rserve/

Mam nadzieję, że to pomoże.

 3
Author: Rajeev Singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-13 09:16:23

Miałem podobną potrzebę jakiś czas temu i przetestowałem kilka interfejsów do R. ten, który uważam za najlepszy dla moich potrzeb (windows, c#), to Rserve , który moim zdaniem jest napisany w Javie. Moim jedynym zmartwieniem jest to, że nie był 64-bitowy. Użyłem prostego klienta napisanego w c# i działało bardzo dobrze. Jestem pewien, że Klient Java jest o wiele lepszy.

 1
Author: darckeen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-18 16:17:34