Comment accéder aux éléments d'une liste nommée par son nom?rpy2 accès R liste les éléments de la liste par nom, interface de bas niveau
J'ai 3 fonctions, qui retournent toutes ListSexpVector
de la classe htest
. L'un d'eux a 5 éléments, ['method', 'parameter', 'statistic', 'p.value', 'data.name']
, d'autres ont un nombre différent, et l'ordre. Je suis intéressé à extraire le p.value
, statistic
et parameter
de cette liste. En R Je peux utiliser $
, comme ceci:
p.value <- fit$p.value
statistic <- fit$statistic
param <- fit$parameter
Le meilleur équivalent j'ai trouvé dans rpy2
va comme:
p_val = fit[list(fit.do_slot('names')).index('p.value')]
stat = fit[list(fit.do_slot('names')).index('statistic')]
param = fit[list(fit.do_slot('names')).index('parameter')]
Ce qui est assez longue haleine. Y a-t-il un meilleur moyen (plus court, plus doux, pythonique)?
Il est le bon vieux jeu entier indexation basé:
p_val = fit[3]
stat = fit[2]
param = fit[1]
Mais il ne fonctionne pas lorsque les positions sont changées, et est donc une sérieuse limitation parce que je suis différent de montage 3 fonctions, et chacun retourne un ordre différent.
Oh, il y a un accesseur '.rx2'! Je ne savais pas à ce sujet. Je ne l'ai pas trouvé dans les docs. Je vous remercie! – Kartik
Il est brièvement mentionné ici: http://rpy2.readthedocs.io/en/version_2.8.x/vector.html#extracting-r-style (bien que pour l'instant il n'y a pas d'exemple de code pour cela) – lgautier