J'apprends comment utiliser rpy2, et je voudrais créer une sortie de régression formatée en utilisant le paquet stargazer. Ma meilleure estimation de la façon de le faire est le code suivant:Comment utiliser Stargazer pour imprimer dans rpy2
import pandas as pd
import rpy2.robjects as robjects
from rpy2.robjects.packages import importr
stargazer = importr('stargazer')
from rpy2.robjects import pandas2ri
pandas2ri.activate()
r = robjects.r
df = pd.DataFrame({'x': [1,2,3,4,5],
'y': [2,1,3,5,4]})
fit = r.lm('y~x', data=df)
print fit
print r.stargazer(fit)
Cependant, quand je le lance, j'obtiendrai la sortie suivante:
Coefficients:
(Intercept) x
0.6 0.8
[1] "\n"
[2] "% Error: Unrecognized object type.\n"
Ainsi, l'ajustement est généré et impressions bien. Mais stargazer ne semble pas reconnaître l'objet ajusté comme quelque chose qu'il peut analyser.
Des suggestions? Est-ce que j'appelle mal Stargazer dans ce contexte?
Je devrais mentionner que je cours ceci dans Python 2.7.5 sur une machine de fenêtres 10, avec R 3.3.2, et rpy2 la version 2.7.8 du binaire non officieux de fenêtres. Cela pourrait donc être un problème avec la construction de Windows, mais il semble étrange que tout sauf stargazer fonctionnerait.
En ce qui concerne la première question, je vois seulement l'erreur quand la deuxième commande est exécutée. Mais je ne suis pas sûr de savoir comment interpréter cela. Si stargazer affiche une erreur sur la console et qu'elle est stockée dans p sous forme de chaîne, cela ne génèrerait-il pas le même résultat? J'ai également lancé stargazer dans r sans aucun problème en utilisant la syntaxe équivalente. – bhackinen
Ce qui semble se passer, c'est que l'appel à 'stargazer()' se termine sans erreur ... mais le vecteur résultat des chaînes indique qu'il y a une erreur. Un peu inhabituel, mais je ne suis pas familier avec le paquet "stargazer". En tout cas cela signifie qu'il y a quelque chose dans l'objet 'fit' qu'il n'aime pas mais qui ne nous dira pas ce que c'est. Il y avait des fautes de frappe dans mon deuxième extrait de code; il devrait être en cours d'exécution maintenant que je les ai réparés. Je pense que stargazer ne gère pas les objets en utilisant des cadres de données anonymes. C'est quelque chose à voir avec le mainteneur du paquet. – lgautier