3

以下の再現可能なコード (最終行) では、「Income」を「fieldToRemove」に置き換えると、「update」機能が機能しません。この機能を動作させるにはどうすればよいですか? その行をループで実行する必要があります。

state.x77                          
tmpData = as.data.frame(state.x77) 
colnames(tmpData)[4] = "Life.Exp"  
colnames(tmpData)[6] = "HS.Grad"
cnames = colnames(tmpData)
cnames
lenCnames = length(cnames)

rhsOfFormula = paste(cnames[1:(length(cnames)-1)],collapse= "+")
lhsOfFormula = cnames[length(cnames)]
(fmla <- as.formula(paste(lhsOfFormula , " ~ ", rhsOfFormula )) )
modelTmp <- glm(formula = fmla, data=tmpData)

fieldToRemove = 'Income'
newModel <- update(modelTmp, .~.-Income )
4

1 に答える 1

9

updateは 2 番目の引数として式を想定しているため、前に使用したのと同じトリックを使用する必要があります: as.formula:

newModel <- update(modelTmp, as.formula(paste(".~.-", fieldToRemove)) )
于 2013-02-11T20:04:45.970 に答える