python - 在 Python Jupyter 笔记本中使用 rpy2 安装 Bioconductor 包

标签 python jupyter-notebook bioconductor

我正在尝试在 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

有人知道我做错了什么吗?

最佳答案

这篇介绍来自这个SO question :

“参数长度为零”是一个非常具体的问题,来 self 最不喜欢的 R 元素之一。让我演示一下这个问题:

> FALSE == "turnip"
[1] FALSE
> TRUE == "turnip"
[1] FALSE
> NA == "turnip"
[1] NA
> NULL == "turnip"
logical(0)

正如您所看到的,与 NULL 的比较不仅不会产生 bool 值,而且根本不会产生值 - 并且控制流往往期望检查会产生某种输出。当它们产生零长度输出时...“参数长度为零”。

从这里来看,你的其中一句台词似乎引发了这种行为。 我猜想交互式 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")

关于python - 在 Python Jupyter 笔记本中使用 rpy2 安装 Bioconductor 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54695182/

相关文章:

python - 属性错误: module 'tensorflow_core.python.keras.api._v2.keras.activations' has no attribute 'swish'

r - 无法加载 R DESeq2 库,安装了所有缺失的软件包,但仍然存在问题

r - R中热图/聚类默认值的差异(热图与热图.2)?

python - Python 递归生成器如何工作?

python - 我怎样才能让 Spacy 停止将带连字符的数字和单词拆分成单独的标记?

python - python中的多项式样本生成

julia - 在 Jupyter 笔记本的 Julia 内核中调整图的大小

python - Jupyter - 从导入的笔记本导入类

r - 一种测试一组外显子/内含子/utr 基因组位置的方法?

python - Heroku App 立即崩溃并出现 R10 和 H10 错误