Rpyだけでなくrpy2も初めてです。
私は基本的に、Rfunc(folder)などの関数を含むRスクリプトscript.Rを持っています。これは、my pythonスクリプトと同じディレクトリにあります。Pythonから呼び出してから、その関数の1つを起動します。このR関数からの出力は必要ありません。わかっています。それは非常に基本的なものでなければなりませんが、Rスクリプト呼び出しの例を見つけることができませんpythonコード。Pythonで現在行っていること:
_import rpy2.robjects as robjects
def pyFunction(folder):
#do python stuff
r=robjects.r
r[r.source("script.R")]
r["rfunc(folder)"]
#do python stuff
pyFunction(folder)
_
ソースの行でエラーが発生します:
r[r.source("script.R")] File "/usr/lib/python2.7/dist-packages/rpy2/robjects/__init__.py", line 226, in __getitem__ res = _globalenv.get(item) TypeError: argument 1 must be string, not ListVector
私が与えた引数が文字列ではないことを私はまったく理解していません。同じ問題が次の行でも発生すると思いますfolderはpython =文字列であり、Rのものではありません。
では、スクリプトを適切に呼び出すにはどうすればよいでしょうか。
source
はr
関数であり、r
ソースファイルを実行します。したがって、_rpy2
_では、次の2つの方法で呼び出すことができます。
_r['source']("script.R")
_
または
_r.source("script.R")
_
r[r.source("script.R")]
は、間違った方法です。
同じ考えが次の行にも当てはまる場合があります。