20

我无法在 python 中运行 rpy2。

使用此代码

 import rpy2.robjects as robjects

以下是完整的例外情况:


RuntimeError: R_USER 未定义。

文件“d:\py\r\r.python.py”,第 1 行,在

  import rpy2.robjects as robjects

File "c:\Python27\Lib\site-packages\rpy2\robjects\__init__.py", line 17, in <module>
  from rpy2.robjects.robject import RObjectMixin, RObject

File "c:\Python27\Lib\site-packages\rpy2\robjects\robject.py", line 5, in <module>
  rpy2.rinterface.initr()

我正在使用 windows xp win32 这是我的位置:

C:\Python27\Lib\site-packages\rpy2\robjects\robject.py

C:\Program Files\R\R-2.15.0\bin\i386\R.exe

C:\Python27\python.exe
4

5 回答 5

20

这是我修复我的R包版本3.0.2 python 版本2.7平台 ipython 笔记本的方式。

更改 R 计算机的路径 -> 属性 -> 高级和系统设置 -> 环境变量

在用户变量字段中添加C:\Program Files\R\R-3.0.2\bin\x64(我的系统是 Windows 64 位)到路径

在系统变量字段中添加两个新变量

R_HOME c:\program files\r\r-3.0.2

R_USER C:\Users\"your user name"\Anaconda\Lib\site-packages\rpy2

于 2014-08-25T06:03:41.150 回答
13

如果您想将 Python 与 rpy2 一起使用,但您还想继续使用您的 RStudio,请不要忘记将 RStudio 添加到您的路径中,否则您会遇到一些路径问题。

您可以根据@user3758274 更改路径:

更改R计算机的路径->属性->高级和系统设置->用户变量字段中的环境变量添加C:\Program Files\R\R-3.0.2\bin\x64(我的系统是Windows 64位)到路径

在系统变量字段中添加两个新变量

R_HOME    c:\program files\r\r-3.0.2

R_USER    C:\Users\"your user name"\Anaconda\Lib\site-packages\rpy2

但是然后将 RStudio 添加到您的 R_USER 系统变量中,这样您将获得:

R_USER    C:\Program Files\RStudio\bin;C:\Users\"your user name"\Anaconda\Lib\site-packages\rpy2
于 2016-06-27T09:13:09.503 回答
13

结合来自 @laven_qa@user3758274的答案,这对我有用:

# installing steps after downloading .whl from http://www.lfd.uci.edu/~gohlke/pythonlibs/#rpy2
import pip
pip.main(["install", "C:/Users/YOUR_USERNAME/Downloads/rpy2-2.8.6-cp36-cp36m-win_amd64.whl"]) # Path to the file that was downloaded from the website above

# setting temporary PATH variables
import os
os.environ['R_HOME'] = 'C:\Program Files\Microsoft\R Open\R-3.4.0' #path to your R installation
os.environ['R_USER'] = 'C:\ProgramData\Anaconda3\Lib\site-packages\rpy2' #path depends on where you installed Python. Mine is the Anaconda distribution

# importing rpy2
import rpy2.robjects as robjects

# test : evaluating R code
robjects.r('''
        # create a function `f`
        f <- function(r, verbose=FALSE) {
            if (verbose) {
                cat("I am calling f().\n")
            }
            2 * pi * r
        }
        # call the function `f` with argument value 3
        f(3)
        ''')

# returns : 
> R object with classes: ('numeric',) mapped to:
> <FloatVector - Python:0x000000000C260508 / R:0x000000000F2872E8>
> [18.849556]
于 2017-08-03T12:35:53.617 回答
10

对于即时和临时的解决方案,您可以在导入 rpy2 之前添加以下代码:

import os
os.environ['R_HOME'] = 'C:/program files/R-3.3.1'

值得注意的一件事是您应该在路径中使用反斜杠而不是斜杠。

于 2016-08-19T11:18:47.330 回答
7

哦,nvm ..我修复了这个..这就是我的做法,以防万一有人遇到同样的问题。我必须将 PYTHONPATH 指定到存储位置 rpy2.robjects

以下是详细信息:我的电脑 > 系统属性 > 高级 > 环境变量:

在系统变量下创建或编辑您的

Variable name : PYTHONPATH 

Variable value : C:\Python27\Lib\site-packages\rpy2;C:\Program Files\R\R-2.15.0\bin\i386;C:\Python27\Lib\site-packages\rpy2\robjects

这应该工作,享受。

于 2012-10-02T22:10:52.460 回答