Я пытаюсь оценить модель multinom(), а затем захватить модель data.frame.Как вы называете model.frame() для объекта multinom/nnet внутри функции?
Внешняя функция, это работает нормально. Но когда я пытаюсь сделать это внутри функции, шаг 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
Когда я бегу отслеживающий(), я тогда получаю это:
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)
Это обзорный вопрос? Есть ли обходные пути?
Спасибо, это работает. Мне нужно будет читать среду, чтобы понять ее лучше. Если вы знаете какие-либо хорошие учебные пособия, ресурсы и т. Д. (За исключением исходного кода/документации R), пожалуйста, дайте мне знать. – Chris