在R包中调用lmFit(limma)时出错
我在一个新的私人R软件包中加入了对在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) {
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)