如何在R中使用'glm'更新构建的模型

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 )
1个回答

9

update函数的第二个参数需要一个公式(formula),因此你需要使用之前用过的同样的技巧:as.formula

newModel <- update(modelTmp, as.formula(paste(".~.-", fieldToRemove)) )

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接