【问题标题】:Install Bioconductor package using rpy2 in Python Jupyter notebook在 Python Jupyter notebook 中使用 rpy2 安装 Bioconductor 包
【发布时间】:2019-02-14 16:42:16
【问题描述】:

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

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

【问题讨论】:

    标签: python jupyter-notebook bioconductor


    【解决方案1】:

    这篇介绍来自这个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")
    

    【讨论】:

      猜你喜欢
      • 2021-11-24
      • 1970-01-01
      • 2018-02-18
      • 1970-01-01
      • 2022-11-11
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多