[Résolu]API de R sous java ?

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Abdel Zine
Messages : 75
Enregistré le : 28 Nov 2006, 09:56

[Résolu]API de R sous java ?

Messagepar Abdel Zine » 15 Jan 2007, 14:49

Bonjour,
Je débute sous R, j’ai lu en partie le document de Paradis « R pour les débutants », ainsi que le document « R Data Import/Export » de sa documentation, et j’aimerais avoir votre avis et éventuellement votre aide sur un exemple de cas concret.

Je voudrais intégrer un module de traitement statistique (utilisant les fonctions de R) dans un logiciel de simulation écrit en java.
Existe-il une API de R sous java pour de simples traitements statistiques, ainsi que l’élaboration d’histogrammes et de courbes ?
J’aimerais pouvoir effectuer certains traitements à partir de mon programme écrit en java, sans lancer R.
J’ai trouvé un package JRI (Java /R Interface) http://rosuda.org/JRI/, lui-même intégré dans le package JGR « une interface graphique Java pour R » (merci à Renaud pour le doc .pdf sur JGR) :
What is JRI?
JRI is a Java/R Interface, which allows to run R inside Java applications as a single thread. Basically it loads R dynamic library into Java and provides a Java API to R functionality. It supports both simple calls to R functions and a full running REPL.

J’ai donc téléchargé à l’aide du menu d’installation de packages de R, le package JGR http://www.rosuda.org/JGR/ :

--- Please select a CRAN mirror for use in this session ---
also installing the dependencies 'rJava', 'JavaGD', 'iplots'

essai de l'URL 'http://cran.fr.r-project.org/bin/windows/contrib/2.4/rJava_0.4-12.zip'
Content type 'application/zip' length 223004 bytes
URL ouverte
downloaded 217Kb

essai de l'URL 'http://cran.fr.r-project.org/bin/windows/contrib/2.4/JavaGD_0.3-5.zip'
Content type 'application/zip' length 51088 bytes
URL ouverte
downloaded 49Kb

essai de l'URL 'http://cran.fr.r-project.org/bin/windows/contrib/2.4/iplots_1.0-5.zip'
Content type 'application/zip' length 443553 bytes
URL ouverte
downloaded 433Kb

essai de l'URL 'http://cran.fr.r-project.org/bin/windows/contrib/2.4/JGR_1.4-15.zip'
Content type 'application/zip' length 268572 bytes
URL ouverte
downloaded 262Kb

package 'rJava' successfully unpacked and MD5 sums checked
package 'JavaGD' successfully unpacked and MD5 sums checked
package 'iplots' successfully unpacked and MD5 sums checked
package 'JGR' successfully unpacked and MD5 sums checked

The downloaded packages are in
C:\Documents and Settings\Propriétaire\Local Settings\Temp\Rtmpn2ogrb\downloaded_packages
updating HTML package descriptions

Donc j’ai 4 fichiers zip dans un fichier temporaire :
C:\Documents and Settings\Propriétaire\Local Settings\Temp\Rtmpn2ogrb\downloaded_packages

Mais après je me perds, que dois-je faire pour pouvoir utiliser R sous java ? Sous l’arborescence de \downloaded_packages\ il y avait bien un des fichiers zip qui contenait un JGR.jar, mais où le mettre et comment l’utiliser ?
Nul ne peut atteindre l'aube sans passer par le chemin de la nuit. Khalil Gibran.

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 15 Jan 2007, 15:07

Bonjour Abdel,

JGR est une interface graphique "intégrée" pour R, avec éditeur de texte, fenêtres graphiques et système d'aide spécifiques. Ce n'est pas fait pour appeler R depuis un programme Java comme vous l'entendez. Je vous conseille plutôt de regarder sur le site web de Omegahat.

Bon courage,

Renaud

Abdel Zine
Messages : 75
Enregistré le : 28 Nov 2006, 09:56

Messagepar Abdel Zine » 16 Jan 2007, 00:18

JRI ne serait pas non plus ce qu'il me faut ?
Je ne trouve pas sous Omegahat, quelqu'un peut me guider ? sans abuser de votre aide :oops:
Merci
Nul ne peut atteindre l'aube sans passer par le chemin de la nuit. Khalil Gibran.

Abdel Zine
Messages : 75
Enregistré le : 28 Nov 2006, 09:56

Messagepar Abdel Zine » 25 Mar 2007, 09:50

Bonjour,
En revoyant mes messages j'ai retrouvé celui-ci, et comme j'ai pas mal avancé sur la question je voulais en partager avec vous le résumé.

Il existe principalement deux façons de faire appel à R à partir d'un programme java (c'est valable pour d'autres langages) [voir LutinJ2R] :

* Accès par le réseau : L'application envoie des requêtes par le réseau à une extension de R faisant office de serveur, laquelle renvoie par la suite les résultats obtenus.
* Accès par une librairie JNI : Il s'agit d'écrire du code en un langage autre que Java qui sera compilé et excécuté par la machine plutôt qu'interprété. Grâce à JNI, il est ensuite possible d'appeler ce code depuis une application Java.


Donc, pour la solution réseau, comme extension de R faisant office de serveur TCP/IP il y a RServe, des clients sont disponibles pour les langages C++ et Java (pour le langage C le client existe mais est obsolète puisque R fournit une API pour le C). Il est théoriquement possible d'écrire des clients pour tout langage supportant les sockets TCP/IP.

Concernant la seconde solution, on fait appel à une librairie JNI (Java Native Interface), qui permettra d'intégrer du code R dans un programme java. Une interface disponible est JRI, elle fait actuellement partie du projet rJava.

Pour une comparaison entre le performances des deux solutions ci-dessous voir la même page de [LutinJ2R]

Codialement,
Nul ne peut atteindre l'aube sans passer par le chemin de la nuit. Khalil Gibran.


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité