我试图在jupyter笔记本中安装Rthon包在python 3x上 .
我知道我必须pip安装rpy2并且它已经成功了
当我在R中调用内置函数(如ccf)或其他简单问题时,这种方法很有效 .
# Call function from R
import os
os.environ['R_USER'] = 'D:\Anaconda3\Lib\site-packages\rpy2'
import rpy2.robjects as robjects
from rpy2.robjects import pandas2ri
pandas2ri.activate()
但是,如果我想安装一个包,如 DirichletReg
或 vars
,那就不是那么容易了,尤其是可能需要下载更多的软件包 .
我确实按照中所述的链接
R, Python: install packages on rpy2
from rpy2.robjects.packages import importr
utils = importr('utils')
utils.install_packages('DirichletReg')
但是收到了以下RuntimeError
---------------------------------------------------------------------------
RRuntimeError Traceback (most recent call last)
<ipython-input-16-32acf37e1ef9> in <module>()
1 from rpy2.robjects.packages import importr
2 utils = importr('utils')
----> 3 utils.install_packages('DirichletReg')
D:\Anaconda3\lib\site-packages\rpy2\robjects\functions.py in __call__(self, *args, **kwargs)
176 v = kwargs.pop(k)
177 kwargs[r_k] = v
--> 178 return super(SignatureTranslatedFunction, self).__call__(*args, **kwargs)
179
180 pattern_link = re.compile(r'\\link\{(.+?)\}')
D:\Anaconda3\lib\site-packages\rpy2\robjects\functions.py in __call__(self, *args, **kwargs)
104 for k, v in kwargs.items():
105 new_kwargs[k] = conversion.py2ri(v)
--> 106 res = super(Function, self).__call__(*new_args, **new_kwargs)
107 res = conversion.ri2ro(res)
108 return res
RRuntimeError: Error in (function (pkgs, lib, repos = getOption("repos"), contriburl = contrib.url(repos, :
py2/R/win-library/3.3'\Anaconda3\Lib\site-packages
有没有人早点发现这个困难?
1 回答
Jupyter Notebook用户(Windows)
1)似乎我所经历的是R库与python库中的目录不在同一个目录中
2)似乎需要先在R中安装一些软件包
要解决此问题,需要在R中使用2个主要步骤,在Python Jupyter笔记本中需要另一个步骤
第1步:转到R(Rstudio)
码:
这将告诉你
然后在R中加载包作为
它将输出为:
通过在R中编码来仔细检查目录:
检查输出为
特技!
这不是R下载软件包的地方 . 您可以通过在R中编码来查看它下载到的位置:
说结果是XYZ(复制这个)
第2步:转到Jupyter笔记本
检查当前的R目录(我假设你已经安装了rpy2)
输出将是
因此与包在XYZ中的R库目录不匹配
因此,要导入或安装所有必需的新包装
这将会像我和其他所有人一样工作
但是它没有用
DirichletReg
它给了我错误