R predict() 要求在 lm() 回归模型中排除变量

R predict() asking for variable excluded in lm() regression model

我打算应用基于两个“x”变量的回归,排除数据框中存在的其他变量。

举个例子:

df <- data.frame(name = c("Paul", "Charles", "Edward", "Iam"),
             age = c(18, 20, 25, 30),
             income = c( 1000, 2000, 2500, 3000),
             workhours = c(35, 40, 45, 40))

regression <- lm(income ~ . -name, data = df)

我在尝试使用预测功能时遇到问题。它需要有关“名称”变量的信息:

predict(object = regression,
    data.frame(age = 22, workhours = 36))

它给出以下消息错误:

Error in eval(predvars, data, env) : object 'name' not found

我已经解决了这个问题,方法是从 lm() 函数中排除“name”变量:

regression2 <- lm(income ~ . , data = df[, -1])
predict(object = regression2,
    data.frame(age = 22, workhours = 36))

因为我有 许多 个变量,我打算从回归中排除,有没有办法在 de predict() 函数中解决这个问题?

我们可以使用update

> regression <- update(regression, . ~ .)
> predict(object = regression,
+     data.frame(age = 22, workhours = 36))
       1 
1714.859