168 votes

Relier R et Julia?

Julia semble très prometteur pour rapide et la syntaxe-sane calcul (par exemple ici), mais je soupçonne que ce ne sera pas n'importe où près de la R en termes de statistiques de flux de travail pour un certain temps encore. Donc je voudrais l'utiliser où C++ est principalement utilisé dans les programmes de R: pour optimiser la lenteur des portions de code. Avant d'investir du temps dans l'apprentissage de Julia, cependant, je suis curieux de savoir ce que les installations il y a pour l'incorporation de Julia extraits de R code.

Donc:

  • Quelles sont les installations pour la liaison R et Julia?
  • Comment robuste et bien pensé sont-ils, sur une échelle de zéro à Rcpp?

Modifier

N. B. je veux appeler Julia de R, tout comme Rcpp permet d'appeler le C++ au sein de la R maintenant. Je ne veux pas appeler la R de Julia.

65voto

Dirk Eddelbuettel Points 134700

Moi aussi, j' ai été à la recherche à Julia depuis Doug Bates m'a envoyé un heads-up en janvier. Mais comme @gsk3, je mesure ce "Rcpp échelle" comme je voudrais transmettre riche en R les objets à Julia. Et cela ne semble pas être pris en charge en ce moment.

Julia est une belle et simple C de l'interface. De sorte que nous obtient quelque chose comme .C(). Mais comme l'a récemment discuté sur r-devel, vous avez vraiment ne voulez pas .C(), dans la plupart des cas vous plutôt souhaitez .Call() afin de passer réelle SEXP variables représentant le réel R des objets. Donc, pour l'instant je vois que peu de place pour Julia de R en raison de cette limitation.

Peut-être indirectement à l'utilisation de l'interface tcp/ip pour Rserve pourrait être un premier pas avant de Julia mûrit un peu et nous obtenons une bonne interface C++. Ou nous utilisons quelque chose basé sur Rcpp à obtenir à partir de la R de C++ avant de passer une couche intermédiaire [quelqu'un qui aurait à écrire] à partir de laquelle nous avons flux de données à Julia, tout comme la R API propose une C de la couche. Je ne sais pas.

Et la fin de la journée, un peu de patience peut être nécessaire. J'ai commencé à regarder R autour de 1996 ou 1997, lorsque Fritz Leisch fait les premières annonces sur le comp.os.linux.annoncer de groupes de discussion. Et R était plutôt limitée installations (mais toutes les promesses de la langue, bien sûr, si nous savions que nous avions un gagnant). Et quelques années plus tard, j'étais prêt à le faire, mon premier langage de modélisation. À l'époque CRAN a encore du chemin à moins de 100 paquets...

Julia peut bien y arriver. Mais pour l'instant je pense que beaucoup d'entre nous obtenir le travail fait dans R, et ont juste un peu curieux aperçus à Julia.

54voto

StefanKarpinski Points 4873

Le plan de développement de Julia, comme je l'ai décrit dans cette réponse, est d'autoriser la compilation de code Julia dans des bibliothèques partagées, appelables à l'aide de C ABI. Une fois que cela se produira, il sera aussi facile d'appeler le code Julia de R que d'appeler le code C / C ++. Il faut cependant pas mal de travail avant que cela devienne possible.

25voto

aviks Points 307

Une mise à jour rapide. Depuis que cette question a été posée, il y a eu le début d'un paquet Julia qui permet d'appeler des programmes R depuis Julia.

Plus ici: https://github.com/lgautier/Rif.jl

15voto

Adam Points 11

Quelqu'un a vu ce projet?

https://github.com/armgong/RJulia

Assez nouveau mais semble faire exactement ce qui est demandé!

7voto

BondedDust Points 105234

D'après les commentaires sur r-devel récemment, je mettrais le degré actuel d'installations de liaison avec R beaucoup plus proche de l'extrémité zéro de votre métrique proposée.

http://markmail.org/search/?q=list%3Aorg.r-project.r-devel+julia

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X