Как «обновить» модель, построенную с помощью «glm» в R

В воспроизводимом коде ниже (последняя строка) функция «обновить» не работает, если я заменю «Доход» на «fieldToRemove». Как я могу заставить эту функцию работать? Мне нужно запустить эту строку в цикле.

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 )

r glm
person user1140126    schedule 11.02.2013    source источник


Ответы (1)


update ожидает формулу в качестве второго аргумента, поэтому вам придется использовать тот же трюк, который вы использовали ранее: as.formula:

newModel <- update(modelTmp, as.formula(paste(".~.-", fieldToRemove)) )
person Jan van der Laan    schedule 11.02.2013