首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PypeR从Python内部执行R文件

使用PypeR从Python内部执行R文件
EN

Stack Overflow用户
提问于 2020-01-24 11:29:45
回答 1查看 484关注 0票数 0

我目前的工作项目是编写一个Python程序,它必须在不同的方面依赖于R。因为我对R不是很了解,而且帮助我的人也不太了解Python,所以实际的R代码不在我的程序中。相反,他打开记事本,将R代码放入其中,并将其保存为(name).r。在执行时,输出被写入到一个txt文件中,然后Python可以读取该文件。

我所要做的就是让Python让R运行(name).r

我试过使用subprocess.run。这工作了一段时间,然后出于某种未知的原因停止工作,现在什么也不做。然后我尝试使用rpy2,它也工作了一段时间;但现在看起来安装坏了,我在重新安装它时遇到了麻烦。

现在我想尝试第三个选项: PypeR。我使用了pip install pyper。看起来很成功。

为了简单起见,我打开记事本,键入以下内容,并将其保存为hello.r

代码语言:javascript
复制
message <- 'goodbye'
write.table(message,'C:/Users/(my name)/Desktop/(folder)/goodbye.txt',row.names=FALSE,col.names=FALSE)

手动打开R并一次复制粘贴一行确实是可行的。但是我在使用Python时遇到了问题。下面是我尝试过的一些方法(我总是把import pyper放在最上面):

代码语言:javascript
复制
pyper.runR("source('C:/Users/(muy name)/Desktop/(folder)/hello.r')")

这给出了NameError:未定义名称'dump_stdout‘

代码语言:javascript
复制
pyper.R("source('C:/Users/(my name)/Desktop/(folder)/hello.r')")

这将显示FileNotFoundError: WinError 2系统找不到指定的文件

代码语言:javascript
复制
r=pyper.R("C:/Program Files/R/R-3.4.1/bin/i386/Rgui.exe")
r("source('C:/Users/(my name)/Desktop/(folder)/hello.r')")

这会导致RGui打开一个空白的R控制台。然后什么都没发生。当我单击back to Python时,控制台显示Python正忙,直到我单击halt按钮,然后我得到"OSError: Errno 22 Invalid argument

执行hello.r的正确方式是什么?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-01-24 12:06:16

看起来我明白了。这是可行的:

代码语言:javascript
复制
r=pyper.R(RCMD="C:/Program Files/R/R-3.4.1/bin/R")
r.run("source('C:/Users/(my name)/Desktop/(folder)/hello.r')")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59890037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档