我正在开发一个R包, testthat 库用于验证。从外部包含匿名函数的外部Mclust包(https://cran.r-project.org/web/packages/mclust/index.html)加载函数时会发生错误问题。使用 requireNamespace()无法识别此功能。这是代码示例:
get.enr.bg.normfit <- function(x) {
result <- c(NA, NA)
if (requireNamespace("mclust")) {
names(result) <- c("mean","sd")
# fit two normal distributions to data
# model <- Mclust(na.omit(x), G=2, modelNames="V")
model <- mclust::Mclust(na.omit(x), G=2)
...
测试运行,但在内部找不到额外的mclust功能:
错误:transcritpt类型缺少标记(@ test-expr-filter.R#53)--------------- 找不到功能&#34; mclustBIC
Mclust从匿名函数里面调用mclustBIC的问题。在RStudio中运行完整包检查时会出现同样的问题。
加载必需的命名空间:mclust eval中的错误(expr,envir,enclos):找不到函数&#34; mclustBIC&#34; 电话:filterGeneExpr - &gt; get.enr.bg.normfit - &gt; - &GT; eval - &gt; EVAL
有没有解决此问题的策略? 我也可以完全依赖包mclust,但是这个函数是可选的,因此只有使用require选项才有意义。