簡體   English   中英

使用 rpy2 從 python 調用 R 腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM