Je suis assez nouveau pour R et assez habitué au python. Je ne suis pas si à l'aise d'écrire du code R. Je recherche python avec R, ce qui me permet d'utiliser les packages R de la manière Pythonic .
J'ai fait des recherches sur google et trouvé quelques packages qui peuvent le faire:
Mais vous ne savez pas lequel est le meilleur? Lequel a le plus de contributeurs et est plus activement utilisé?
Veuillez noter que ma principale exigence est un moyen Pythonic pour accéder aux packages R .
Comme l'a souligné @lgautier, il y a déjà ne autre réponse à ce sujet . Je laisse ma réponse ici car elle ajoute l'expérience d'approcher R en tant que novice, connaissant d'abord Python.
J'utilise à la fois Python et R et sympathise avec votre besoin en tant que nouveau venu dans R.
Étant donné que toute réponse que vous obtiendrez sera subjective, je résume quelques points de mon expérience:
Mon conseil:
Une fois que vous connaissez les deux, vous ferez de la magie avec rpy2 sans les horreurs du débogage multilingue.
Mise à jour du 29 janvier 2015
Cette réponse s'est avérée populaire et j'ai donc pensé qu'il serait utile de signaler deux ressources plus récentes:
Le triplet R , Rserve et pyRserve permet la construction d'un pont réseau à partir de Python à R: Désormais, les fonctions R peuvent être appelées à partir de Python comme si elles étaient implémentées en Python, et même des scripts R complets peuvent être exécutés via cette connexion.
rmagic
dans IPython/Jupyter
facilitant considérablement le travail de production de recherches reproductibles et de cahiers qui combinent les deux langues.Une question sur comparant rpy2, pyrserve et pyper les uns aux autres a été répondue sur le site plus tôt.
Concernant le nombre de contributeurs, je dirais que les 3 ont un nombre relativement faible. Un site comme Ohloh peut donner une réponse plus détaillée.
Il est difficile de déterminer dans quelle mesure un package est utilisé. Une indication pourrait être le nombre de téléchargements, une autre pourrait être le nombre de publications sur les listes de diffusion ou le nombre de questions sur un site comme stackoverflow, le nombre d'autres packages l'utilisant ou le citant, le nombre de CV ou de postes vacants mentionnant le paquet. Autant je pense que je pourrais donner une évaluation juste, je pourrais aussi être considéré comme ayant un conflit d'intérêts. ;-)
Tous les trois ont leurs avantages et leurs inconvénients. Je dirais que vous basez votre choix sur cela.
Mon expérience personnelle a été avec Rpy
, pas Rpy2
. Je l'ai utilisé pendant un certain temps, mais je l'ai abandonné en faveur de l'utilisation des commandes system
. Un cas typique pour moi était d'exécuter un modèle FORTRAN en utilisant Python et post-traitement avec R. D'après mon expérience, la solution la plus simple était de créer un outil de ligne de commande en utilisant R, ce qui est assez simple (au moins sous Linux). L'outil de ligne de commande pourrait être exécuté à la racine de l'exécution du modèle, et le script produirait un ensemble d'objets et de tracés R dans un répertoire Routput
. L'avantage de déconnecter R et Python de cette manière était que je pouvais facilement déboguer le code R séparément du code Python.
Je pense que Rpy
brille vraiment quand beaucoup de communication aller-retour entre R et Python est nécessaire. Mais si la fonctionnalité est bien séparable, et la surcharge des E/S disque) n'est pas trop mauvais, je m'en tiendrai aux appels system
. Voir ?system
pour plus d'informations sur les appels système et Rscript
pour exécuter les scripts R comme outil de ligne de commande.
Concernant votre souhait d'écrire du code R de manière Python, ce n'est pas possible car toutes les solutions vous obligent à écrire du code R dans la syntaxe R. Pour Rpy
cela signifie la syntaxe R , mais un peu différent (pas de .
par exemple). Je suis d'accord avec @gauden qu'il n'y a pas de raccourci dans l'utilisation de R à Rpy
.