我正在编写一个在我的一个函数中使用flexmix getModel
的包。
问题在于它使用哪种BIC / AIC功能(来自统计数据包)。
> getMethod("getModel","stepFlexmix")
Method Definition:
function (object, ...)
{
.local <- function (object, which = "BIC")
{
if (which == "AIC")
which <- which.min(sapply(object@models, function(x) AIC(x)))
if (which == "BIC")
which <- which.min(sapply(object@models, function(x) BIC(x)))
if (which == "ICL")
which <- which.min(sapply(object@models, function(x) ICL(x)))
object@models[[which]]
}
.local(object, ...)
}
<environment: namespace:flexmix>
Signatures:
object
target "stepFlexmix"
defined "stepFlexmix"
在另一个函数中,我使用了flowMerge包中的BIC,在头文件中我有:
@' importFrom flowMerge BIC
问题是getModel函数现在使用flowMerge中的BIC而不是stats。我怀疑它是在命名空间的定义中?我不太确定。
因为它是内部调用的,所以我没有选择
stats::BIC
在包装内是否有一种优雅的方式?如果我只是自己运行函数,这一切都很好用。
答案 0 :(得分:0)
我通过
解决了这个问题@' importFrom flowMerge BIC
,从而删除NAMESPACE
flowMerge::BIC
这会使getMethod
使用BIC
中的stats
。这是一种解决方法,可能不是最好的方式。