问题描述
我正在构建一个相当大的函数,它在 r 中开发一系列全局线性模型,然后使用 R 中包 MuMIn 中的 dredge() 函数来找到最适合的模型。该函数非常大,而且大部分都有效,所以我不会在这里展示。特别是,当使用 glm()、glmer()(lme4 包)、glmmTMB()(glmmTMB 包)等函数构建全局模型时,它工作正常。但是,当使用pscl 包中的 zeroinfl() 函数。我开发了以下导致相同问题的短代码。代码如下:
library(pscl)
data(bioChemists)
options(na.action = "na.fail")
trialfunc2 <- function(dataset) {
globalmodel <- pscl::zeroinfl(formula = art ~ . | 1,data = dataset,dist = "negbin")
globaltable <- try(MuMIn::dredge(globalmodel))
output <- list(globalmodel,globaltable)
return(output)
}
trialfunc2(bioChemists)
这是我得到的输出:
[[1]]
Call:
pscl::zeroinfl(formula = art ~ . | 1,dist = "negbin")
Count model coefficients (negbin with log link):
(Intercept) femWomen marMarried kid5 phd ment
0.25620 -0.21642 0.15047 -0.17641 0.01525 0.02908
Theta = 2.2645
Zero-inflation model coefficients (binomial with logit link):
(Intercept)
-12.85
[[2]]
[1] "Error in eval(x$call$data) : object 'dataset' not found\n"
attr(,"class")
[1] "try-error"
attr(,"condition")
<simpleError in eval(x$call$data): object 'dataset' not found>
因此,全局模型运行,但 dredge() 调用失败。由于特定错误在 eval(x$call$data) 中,我认为它可能来自在 dredge() 中调用的 zeroinfl() 函数中,我怀疑这是某种范围的问题,其中函数不是在正确的环境中寻找数据集。但是,我找不到任何方法让 R 找到数据集并完成 dredge() 调用。
任何人都可以建议如何解决此问题以使其正常工作吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)