在R包中调用lmFit(limma)时出错

在R包中调用lmFit(limma)时出错,r,package,R,Package,我在一个新的私人R软件包中加入了对lmFit的调用。但是当调用包含对lmFit的调用的方法时,我得到了一个错误: Error in getEAWP(object) : could not find function "exprs" 实施的结构如下: setMethod( f = "genexp", signature = "clusterContainer", definition = function(object, expSet, fdr.cutoff = 0.05) {

我在一个新的私人R软件包中加入了对
lmFit
的调用。但是当调用包含对
lmFit
的调用的方法时,我得到了一个错误:

Error in getEAWP(object) : could not find function "exprs" 
实施的结构如下:

setMethod(
  f = "genexp",
  signature = "clusterContainer",
  definition = function(object, expSet, fdr.cutoff = 0.05) {

    design <- model.matrix(groups, data = Biobase::pData(expSet))
    fit <- limma::lmFit(expSet, design)
    fit <- limma::eBayes(fit)
    # [...]
  }
)
以及
命名空间

exportPattern("^[^\\.]")
importFrom(Biobase, AnnotatedDataFrame)
importFrom(Biobase, exprs)
我需要做什么才能调用
lmFit
(和其他人),让他们使用第三个软件包的功能

更新1:我添加了回溯:

> genexp(c, expression)
 Error in getEAWP(object) : could not find function "exprs" 
5 getEAWP(object) 
4 limma::lmFit(expSet, design) at clusterContainer-genexp.R#18
3 .local(object, ...) 
2 genexp(c, expression) at 1_AllGenerics.R#50
1 genexp(c, expression) 

更新2:函数
getEAWP
来自
limma
。函数
exprs
来自
Biobase

解决方案可以是将
Biobase
添加到
dependens
部分的
DESCRIPTION
文件中。但是我认为这不是正确的解决方案。是
getEAWP
在limma包中还是其他地方?(您可以尝试
limma:::expers
查看它是否在该包中。)我猜它在另一个包中,并且它在函数
limma::lmFit
中不合格(例如
otherPackage::expers
)。也许将
otherPackage
添加到
DESCRIPTION
文件的dependens部分并调用库(“otherPackage”)将解决此问题。感谢@Jthorpe的评论,我更新了问题,试图澄清情况
exprs
来自
Biobase
,我把它放在
Imports
部分(在
DESCRIPTION
文件中)。我找到的唯一解决方案是将
Bioase
移动到
dependens
,但我仍然认为这不是一个好的解决方案。好吧,看起来你的软件包确实依赖于
Biobase
,那么为什么不
dependens
?如果您显式地将
require(Biobase)
添加到代码中,它是否运行?@CarlWitthoft,在方法中添加
require(Biobase)
会使它运行。因此,对于这一点,我是否应该将
Biobase
包含在
dependens
中?
> genexp(c, expression)
 Error in getEAWP(object) : could not find function "exprs" 
5 getEAWP(object) 
4 limma::lmFit(expSet, design) at clusterContainer-genexp.R#18
3 .local(object, ...) 
2 genexp(c, expression) at 1_AllGenerics.R#50
1 genexp(c, expression)