【问题标题】:how to call a function from R in Python?如何在 Python 中从 R 调用函数?
【发布时间】:2018-02-07 19:42:16
【问题描述】:

我在 R 中有这个函数,我想在 python 中调用它。我打算将在 python 中处理过的数据分配给 R 函数,以对其进行进一步分析。在函数进行分析后,我还需要将数据返回给 python。我知道 rpy2,我使用了这个命令

robjects.r('''source('mycode.R')''')
r_test_function = robjects.globalenv['myFunction']

我收到此错误:

/usr/local/lib/python2.7/dist-packages/rpy2/rinterface/init.py:186: RRuntimeWarning:文件中的错误(文件名,“r”,编码 = 编码):
无法打开连接

warnings.warn(x, RRuntimeWarning) /usr/local/lib/python2.7/dist-packages/rpy2/rinterface/init.py:186: RRuntimeWarning:另外:warnings.warn(x, RRuntimeWarning) /usr/local/lib/python2.7/dist-packages/rpy2/rinterface/init.py:186: RRuntimeWarning:警告信息:

warnings.warn(x, RRuntimeWarning) /usr/local/lib/python2.7/dist-packages/rpy2/rinterface/init.py:186: RRuntimeWarning:在文件中(文件名,“r”,编码 = 编码):
警告.warn(x, RRuntimeWarning) /usr/local/lib/python2.7/dist-packages/rpy2/rinterface/init.py:186: RRuntimeWarning:

warnings.warn(x, RRuntimeWarning) /usr/local/lib/python2.7/dist-packages/rpy2/rinterface/init.py:186: RRuntimeWarning:无法打开文件'mycode.R':没有这样的文件或 目录

warnings.warn(x, RRuntimeWarning) 信息 | ____________________________________________________________________________________________________|错误 |异常状态终止|错误

我将sys.path.append('thePath') 用于包含该函数的目录。有人可以帮我解决这个问题吗?我已经搜索了很多关于该主题的内容,但在我的案例中找不到任何内容。我上面解释的内容也适用于 rpy2 吗?

谢谢,

【问题讨论】:

  • 错误发生在您的第一行还是第二行?您要获取的文件中有什么内容? bfast.R 是什么?你在做基本的 rpy 事情时会出错吗?
  • 我编辑了错误,bfast.R和mycode.R一样。我所指的文件中有多个 R 函数。是的,我尝试了其他简单的功能,仍然是同样的错误。
  • 错误发生在您的第一行还是第二行? Python 从哪个文件夹开始?您的文件系统中的 R 文件在哪里?如果你从 Rpy2 运行 getwd(),你会得到什么?那是 R 的工作目录。 file.exists('mycode.R') 呢?这会告诉您文件是否存在。

标签: python r rpy2


【解决方案1】:

您关心的是获取完整的目录路径吗?我目前正在使用 Python 3.6 浏览目录中的所有文件并列出它们。由于您只想处理一个特定的文件,您可以尝试以下方法:

导入操作系统

file = os.path.abspath(''F:\Training.xlsx'') 所以你的文件变量看起来像'F:\Training.xlsx'

您可以简单地使用变量文件而不是输入整个目录路径。

希望对你有帮助。

【讨论】:

  • 嗨 Sagar,谢谢您的回复。我是 python 新手。我试过你的建议。仍然出现同样的错误。
猜你喜欢
  • 2021-08-27
  • 2019-07-11
  • 1970-01-01
  • 1970-01-01
  • 2023-01-19
  • 1970-01-01
  • 1970-01-01
  • 2018-12-08
  • 2021-11-29
相关资源
最近更新 更多