J'aimerais accéder à R à partir d'un programme Python. Je connais Rpy2, pyrserve et PypeR.
Quels sont les avantages ou les inconvénients de ces trois options?
J'aimerais accéder à R à partir d'un programme Python. Je connais Rpy2, pyrserve et PypeR.
Quels sont les avantages ou les inconvénients de ces trois options?
Je sais qu'un des 3 meilleurs que les autres, mais dans l'ordre donné dans la question:
rpy2:
pyrserve:
pyper:
edit: support de Windows pour rpy2
À partir de l'étude dans le Journal de Logiciels Statistiques sur PypeR:
RPy présente un moyen simple et efficace de l'accès à la R à partir de Python. Il est robuste et très pratique pour les interactions fréquentes entre Python et R. Ce package permet Python programmes pour passer des objets Python de types de données de base pour les fonctions R et le retour de la résultats dans des objets Python. Ces caractéristiques en font une solution attrayante pour les cas dans lesquels Python et R interagir fréquemment. Cependant, il y a encore des limitations de ce colis comme indiqué ci-dessous.
Performance:
RPy peut se comportent pas très bien pour la grande taille des ensembles de données ou de calcul intensif fonctions. Beaucoup de temps et de mémoire sont inévitablement consommés dans la production du Python copie de la R de données, car à chaque tour d'une conversation RPy convertit le retour de l' la valeur de R expression dans un objet Python de types de base ou un tableau NumPy. RPy2, un récemment élaborées par la direction générale de RPy, utilise des objets Python pour désigner des objets R au lieu de la copie de retrouver des objets Python. Cette stratégie évite fréquentes conversions de données et améliore la vitesse de déplacement. Cependant, la consommation de mémoire reste un problème. [...] Lorsque nous étions à la mise en œuvre de WebArray (Xia et coll. 2005), une plate-forme en ligne pour les données de biopuces analyse, un travail consommé environ un quart de plus de temps de calcul si l'exécution de la R par le biais de RPy au lieu de la R de la ligne de commande de l'interface utilisateur. Par conséquent, nous avons décidé de lancer R en Python à l'aide de tuyaux dans les développements ultérieurs, par exemple, WebArrayDB (Xia et coll. 2009), qui a conservé le même rendement que celui atteint lors de l'exécution de la R de façon indépendante. Nous ne savons pas exactement la raison de cette différence dans la performance, mais nous avons remarqué que RPy utilise directement la bibliothèque partagée de R pour lancer R scripts. En revanche, l'exécution de la R par le biais de tubes signifie l'exécution de la R interprète directement.
Mémoire:
R a été dénoncé pour son utilisation peu rentable de la mémoire. La mémoire utilisée par les grands la taille des objets R est rarement publié à l'issue de ces objets sont supprimés. Parfois, la seule afin de libérer de la mémoire à partir de R est d'arrêter de R. RPy module enveloppements R dans un objet Python. Cependant, la R de la bibliothèque restera dans la mémoire, même si l'objet Python est supprimé. Dans d'autres mots, la mémoire utilisée par le R ne peut pas être libéré jusqu'à ce que l'hôte de script Python est terminée.
La portabilité:
Comme un module avec des extensions écrites en C, le RPy paquet source doit être compilé avec une version R sur POSIX (Portable Operating System Interface pour les systèmes Unix) les systèmes, et le R doit être compilé avec la bibliothèque partagée activé. Aussi, le binaire les distributions pour Windows sont liés à des combinaisons de différentes versions de Python/R, de sorte que il est assez fréquent qu'un utilisateur a de la difficulté à trouver une distribution qui ts de l'utilisateur de l'environnement logiciel.
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.