2016-11-21 10 views
0

私は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" 

のでフィット感が生成され、そしてプリント良い。しかし、視覚効果は、フィットオブジェクトを解析できるものとして認識していないようです。

提案がありますか?この文脈では、私は失業者を間違って電話していますか?

私はこれをPython 2.7.5でWindows®マシンで実行していますが、R 3.3.2とrpy2バージョン2.7.8は非公式のWindowsバイナリから実行しています。だから、それはちょうどWindowsビルドの問題かもしれませんが、それは奇妙なことを除いてすべてが動作することは奇妙に思えます。

答えて

1

私はRパッケージstargazerに精通していませんが、これは正しい使い方であると思われるドキュメントを素早く見ています。

何かの前に、問題が実行中であるか印刷中であるかを確認したい場合があります。 2つのラインのどちらが失敗したのでしょうか?

p = r.stargazer(fit) 
print(p) 

実行に失敗した場合、より多くのコードをRに移動して、動作させるポイントに達しているかどうかを確認することができます。そうでない場合、これはおそらくRコードおよび/またはスタマジーの問題です。これを動作させるには、rpy2/conversion側で問題を解決する必要があります。

rcode = """ 
df <- data.frame(x = c(1,2,3,4,5), 
       y = c(2,1,3,5,4)) 

fit <- lm('y~x', data=df) 

p <- stargazer(fit) 
""" 

# parse and evaluate the R code 
r(rcode) 

# intermediate objects can be retrieved from the `globalenv` to 
# investigate where they differ from the ones obtained earlier. 
# For example: 
print(robjects.globalenv["p"]) 

今、私たちはそれがそうstargazer側の問題であることを示したことを、我々は任意のデータの使用はRのglobalenv内のシンボルにそれを結合の問題をフレームにすることができます。

robjects.globalenv["df"] = df 
rcode = """  
fit <- lm('y~x', data=df) 

p <- stargazer(fit) 
""" 

# parse and evaluate the R code 
r(rcode) 

print(robjects.globalenv["p"]) 
+0

について最初の質問、私は2番目のコマンドが実行されるときにエラーが表示されます。しかし、私はそれをどのように解釈するか分からない。 stargazerがコンソールにエラーを表示し、文字列としてpに格納されている場合、同じ結果が生成されませんか? 私は同じような構文を使っても問題なくrでstargazerを実行しました。 – bhackinen

+0

起こっていると思われることは、 'stargazer()'への呼び出しがエラーなしで完了することです...しかし、文字列の結果ベクトルはエラーがあると言っています。少し珍しいが、私はパッケージ "stargazer"に精通していない。いずれにせよ、これは、アウトオブジェクトの「フィット」には何かがあり、それは好きではないが、それが何であるかを教えてくれないことを意味する。コードの2番目のスニペットに誤字がありました。私はそれらを修正したので、実行している必要があります。私は、スタマジーが匿名データフレームを使ってフィットオブジェクトを扱っていないと思います。それはパッケージのメンテナーに見えるものです。 – lgautier

関連する問題