2

この質問が以前に提起されたことは知っています ( <my code> のエラー: タイプ 'closure' のオブジェクトはサブセット化できません)。しかし、私はそれを理解することができませんでした。

使用するパッケージとデータの準備方法は次のとおりです

library(mlogit)

data(CollegeDistance, package="AER")
Data <- CollegeDistance 
Data$Dist[Data$distance<0.4] <- 1
Data$Dist[Data$distance<1 & Data$distance>=0.4] <- 2
Data$Dist[Data$distance<2.5 & Data$distance>=1] <- 3
Data$Dist[Data$distance>=2.5] <- 4

オブジェクトを定義しmlogitて予測に使用すると、そのエラーが発生します。

Formula <- paste('Dist ~', paste('1|',paste(c("urban", "unemp", "tuition"), collapse = " + "),'|1')) 
Model <- mlogit(as.formula(Formula), Data, shape='wide', choice='Dist')

Predict <- predict(Model, newdata=mlogit.data(Data, shape='wide', choice='Dist'), returnData=FALSE)

興味深い部分は、次のように置き換えるFormulaformula機能することです!

アップデート

関数で使用しているときにその問題が発生しmlogitました。抜け道を教えていただけると本当に助かります。

modelmaker <- function(variables){
  Formula <- paste('Dist ~', paste('1|',paste(variables, collapse = " + "),'|1'))
  MODEL <- mlogit(as.formula(Formula), Data, shape='wide', choice='Dist')  
  return(MODEL)
}

Model <- modelmaker(c("urban", "unemp", "tuition"))
Predict <- predict(Model, newdata=mlogit.data(Data, shape='wide', choice='Dist'), returnData=FALSE)

今回はformulaやを避けても解決しませんFormula。に変更するとXXX、エラーになります

object 'XXX' not found
4

0 に答える 0