0
我試圖估計一個multinom()模型,然後抓住模型data.frame。如何在函數內的multinom/nnet對象上調用model.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
當我運行回溯(),然後我得到這樣的:
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