Python 3.x 无法在python(Jupyter笔记本)中安装R软件包?

Python 3.x 无法在python(Jupyter笔记本)中安装R软件包?,python-3.x,jupyter-notebook,rpy2,Python 3.x,Jupyter Notebook,Rpy2,我正试图在jupyter笔记本的python 3x上安装R包 我知道我必须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 pandas

我正试图在jupyter笔记本的python 3x上安装R包

我知道我必须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
,就没有那么容易了,特别是可能需要下载更多的软件包

我确实遵循了中描述的链接

但收到以下运行时错误

---------------------------------------------------------------------------
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
---------------------------------------------------------------------------
RRontimeError回溯(最近一次呼叫上次)
在()
1从rpy2.robjects.packages导入导入
2 utils=importr('utils')
---->3.utils.install_包('DirichletReg')
D:\Anaconda3\lib\site packages\rpy2\robjects\functions.py在调用中(self,*args,**kwargs)
176 v=kwargs.pop(k)
177夸尔格[r_k]=v
-->178返回超级(SignatureTranslatedFunction,self)。\调用(*args,**kwargs)
179
180 pattern\u link=re.compile(r'\\link\{(+?)\})
D:\Anaconda3\lib\site packages\rpy2\robjects\functions.py在调用中(self,*args,**kwargs)
104表示k,v,单位为kwargs.items():
105 new_kwargs[k]=转换.py2ri(v)
-->106 res=super(函数,自).\u调用(*新参数,**新参数)
107 res=转换为ri2ro(res)
108返回res
rrontimeerror:function(pkgs,lib,repos=getOption(“repos”),contriburl=contrib.url(repos,:
py2/R/win库/3.3'\Anaconda3\Lib\site包
以前有人发现过这个困难吗?

Jupyter笔记本用户(Windows) 1) 我所经历的似乎是R库与python库不在同一目录中

2) 似乎有些软件包需要先在R中安装

要解决这个问题,需要两个主要步骤,一个是在R中,另一个是在PythonJupyter笔记本中 步骤1:转到R(Rstudio)

代码:

这会告诉你

package ‘httpuv’ successfully unpacked and MD5 sums checked
package ‘xtable’ successfully unpacked and MD5 sums checked
package ‘sourcetools’ successfully unpacked and MD5 sums checked
package ‘htmlwidgets’ successfully unpacked and MD5 sums checked
package ‘shiny’ successfully unpacked and MD5 sums checked
package ‘miscTools’ successfully unpacked and MD5 sums checked
package ‘rgl’ successfully unpacked and MD5 sums checked
package ‘maxLik’ successfully unpacked and MD5 sums checked
package ‘DirichletReg’ successfully unpacked and MD5 sums checked
然后将包加载到R中

> loadNamespace('DirichletReg')
它将给出如下输出:

<environment: namespace:DirichletReg>
将输出检查为

"C:/PROGRA~1/R/R-33~1.3"
戏法 这不是R将软件包下载到的位置。您可以通过在R中编码来查看其下载到的位置:

R.home()
.libPaths()
假设结果为XYZ(复制此)

步骤2:转到Jupyter笔记本

检查当前的R目录(我假设您已经安装了rpy2)

输出将是

"C:/Program Files/R/R-3.3.3"
因此,与包位于XYZ中的R库目录不匹配

因此,导入或安装新软件包所需的全部工作是

DirichletReg = importr("DirichletReg", lib_loc = "XYZ")
这通常会像我为所有其他人所做的那样起作用

mi = importr("mi", lib_loc = "XYZ")
ggplot2 = importr("ggplot2", lib_loc = "XYZ")
但是它对DirichletReg不起作用,它给了我一个错误

RRuntimeError: Error in loadNamespace(name) : there is no package called 'ggplot2'
DirichletReg = importr("DirichletReg", lib_loc = "XYZ")
mi = importr("mi", lib_loc = "XYZ")
ggplot2 = importr("ggplot2", lib_loc = "XYZ")
RRuntimeError: Error in loadNamespace(name) : there is no package called 'ggplot2'