[英]Calling R script from python using rpy2
我對 rpy2 和 R 都很陌生。
我基本上有一個 R 腳本 script.R,其中包含函數,例如 rfunc(folder)。 它與我的 python 腳本位於同一目錄中。 我想從 Python 調用它,然后啟動它的功能之一。 我不需要這個 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
我很不明白我給它的參數不是一個字符串,我猜同樣的問題會發生在下一行,文件夾是一個 python 字符串,而不是一個 R 的東西。
那么,我該如何正確調用我的腳本呢?
source
是一個r
函數,它運行一個r
源文件。 因此,在rpy2
,我們有兩種調用方式:
import rpy2.robjects as robjects
r = robjects.r
r['source']('script.R')
或者
import rpy2.robjects as robjects
r = robjects.r
r.source('script.R')
r[r.source("script.R")]
是一種錯誤的方法。
同樣的想法可能適用於下一行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.