我正在學習如何使用rpy2,並且我想使用stargazer軟件包創建格式化的迴歸輸出。我最好的如何做到這一點的猜測是,下面的代碼:如何使用Stargazer打印適合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)
然而,當我運行它時,我得到下面的輸出:
Coefficients:
(Intercept) x
0.6 0.8
[1] "\n"
[2] "% Error: Unrecognized object type.\n"
所以正在生成的配合,並打印精細。但是,觀星者似乎並不認可這個合適的對象是它可以解析的東西。
有什麼建議嗎?我在這種情況下不正確地打電話給stargazer?
我應該提到,我在Windows 10機器上運行Python 2.7.5,使用R 3.3.2和rpy2版本2.7.8從非官方的windows二進制文件中運行。所以它可能只是Windows構建的一個問題,但看起來很奇怪,除了觀星者之外的所有東西都可以工作。
關於第一個問題,我只看到第二個命令運行時的錯誤。但我不確定如何解釋。如果stargazer向控制檯輸出一個錯誤,並且它以字符串的形式存儲在p中,那麼這不會產生相同的結果嗎? 我也使用等效語法在r中運行stargazer,沒有任何問題。 – bhackinen
似乎正在發生的事情是,對'stargazer()'的調用完成而沒有錯誤...但字符串的結果向量表示存在錯誤。有點不尋常,但我不熟悉包裝「觀星者」。在任何情況下,這意味着有某種東西在外面的「適合」,它不喜歡,但它不會告訴我們它是什麼。我的第二段代碼中存在拼寫錯誤;它現在應該運行,我修好了它們。我認爲stargazer沒有使用匿名數據框處理合適的對象。這是與包的維護者看到的。 – lgautier