我正在尝试在Python Jupyter笔记本中使用rpy2从Bioconductor安装"pcaMethods“。
这就是我尝试过的
from rpy2.robjects.packages import importr
utils = importr('utils')
utils.install_packages('mice') # all of this works
base = importr('base')
base.source("http://www.bioconductor.org/biocLite.R")
biocinstaller = importr("BiocInstaller") # this doesn't work
biocinstaller.biocLite("pcaMethods") # this doesn't work
# load the installed package
pcaMethods = importr("pcaMethods")这是我尝试安装pcaMethods时得到的错误
Error in if (answer %in% allowed) break : argument is of length zero有人知道我做错了什么吗?
发布于 2019-02-27 06:33:19
下面的介绍来自这个SO question:
“参数长度为零”是一个非常具体的问题,它来自我最不喜欢的R元素之一。让我来演示一下这个问题:
> FALSE == "turnip"
[1] FALSE
> TRUE == "turnip"
[1] FALSE
> NA == "turnip"
[1] NA
> NULL == "turnip"
logical(0)正如您所看到的,与NULL的比较不仅不会产生布尔值,而且根本不会产生值-而且控制流倾向于期望检查会产生某种类型的输出。当它们产生零长度输出时...“参数的长度为零”。
从这里看,似乎你的一行代码引起了这种行为。我猜有一些关于交互式R的库路径与rpy中使用的R的库路径,这在您的情况下不匹配。
同样重要的是要注意,在第一次执行代码期间,您应该只执行一次安装过程:
base.source("http://www.bioconductor.org/biocLite.R")
biocinstaller = importr("BiocInstaller") # this doesn't work
biocinstaller.biocLite("pcaMethods") # this doesn't work稍后,您只需加载该包
# load the installed package
pcaMethods = importr("pcaMethods")https://stackoverflow.com/questions/54695182
复制相似问题