gpt4 book ai didi

python - 使用 rpy2 从 python 调用 R 脚本

转载 作者:太空狗 更新时间:2023-10-29 16:53:41 25 4
gpt4 key购买 nike

我是 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")]
文件“/usr/lib/python2.7/dist-packages/rpy2/robjects/__init__.py”,第 226 行,在 __getitem__ 中
res = _globalenv.get(项目)
类型错误:参数 1 必须是字符串,而不是 ListVector

我很不明白我给它的论点怎么不是一个字符串,我猜同样的问题会在下一行发生,folder 是一个 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")] 是错误的做法。

同样的想法可能适用于下一行。

关于python - 使用 rpy2 从 python 调用 R 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24544190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com