9
votes

Python et RPY2: appel de la tracé d'appel avec des options qui ont "". en eux

Je commence juste à apprendre à apprendre à utiliser RPY2 avec Python. Je suis capable de faire de simples parcelles et de tels termes, mais j'ai rencontré le problème que de nombreuses options en utilisation r ".". Par exemple, voici un appel r qui fonctionne:

Barplot (t, col = chaleur.colors (2), noms.arg = c ("PWN", "PWN2"))

où T est une matrice.

Je veux utiliser le même appel dans Python, mais il rejette le "". partie de noms.arg. Je crois comprendre que dans Python, vous remplacez le "". avec "_", donc noms_arg par exemple, mais cela ne fonctionne pas non plus. Je sais que c'est un problème fondamental, alors j'espère que quelqu'un l'a vu et connaît le correctif. Merci!


0 commentaires

3 Réponses :


1
votes

Je ne sais pas si RPY acceptera cela, mais vous pouvez avoir des paramètres de mots-clés avec des périodes. Vous devez les transmettre à travers un dictionnaire. Comme ceci: xxx


1 commentaires

C'est vraiment utile, notamment combiné à la réponse 2. Tous fixés maintenant, merci!



9
votes

Vous pouvez utiliser un dictionnaire ici pour les arguments nommés ( en utilisant ** a>) comme décrit dans les documents et appelez directement pour les fonctions. N'oubliez pas non plus que RPY2 attend son Objets vectoriels . Oui, c'est un peu maladroit, mais sur le côté plus, vous devriez être capable de faire quoi que ce soit dans RPY2, vous pourriez faire dans R.

from rpy2 import robjects
color = robjects.r("heat.colors")()
names = robjects.StrVector(("pwn", "pwn2"))
robjects.r.barplot(t, col=color, **{"names.arg":names})


0 commentaires

0
votes

avec RPY2-2.1.0, un moyen d'écrire ce serait:

from rpy2.robjects.packages import importr
graphics = importr("graphics")
grdevices = importr("grDevices")

graphics.barplot_default(t, 
                         col = grdevices.heat_colors(2),
                         names_arg = StrVector(("pwn", "pwn2")))


0 commentaires