我正在尝试估计一个 multinom() 模型,然后获取模型 data.frame。
在函数之外,这工作正常。但是当我尝试在函数中这样做时, data.frame() 步骤会引发错误。
下面是应该隔离问题的示例代码:
library(MASS)
library(nnet)
# create data
df <- survey
df$Exer <- relevel(df$Exer, ref="None")
# estimate within wrapper function -- throws error
estimator <- function(fmla, data){
mod1 <- multinom(fmla, data)
mod1$mod <- model.frame(mod1,data)
return(mod1)
}
x <- estimator(Exer~Sex+Smoke+Age, data=df)
最后一行产生这个:
Error in stats::model.frame(formula = fmla, data = data) :
object 'fmla' not found
当我运行 traceback() 时,我得到了这个:
6: stats::model.frame(formula = fmla, data = data)
5: eval(expr, envir, enclos)
4: eval(oc, env)
3: model.frame.multinom(mod1, data)
2: model.frame(mod1, data) at #3
1: estimator(Exer ~ Sex + Smoke + Age, data = df)
这是范围界定问题吗?有解决方法吗?