library(mboost)### 一个简单的二维示例:汽车数据cars.gb <- gamboost(dist ~ speed, data = cars, dfbase = 4, control = boost_control(mstop = 50))set.seed(1)cars_new <- cars + rnorm(nrow(cars))> predict(cars.gb, newdata = cars_new$speed)Error in check_newdata(newdata, blg, mf) : ‘newdata’ must contain all predictor variables, which were used to specify the model.
我按照help(gamboost)
页面上的示例拟合了一个模型。我想用这个模型在新的数据集cars_new
上进行预测,但遇到了上述错误。我该如何解决这个问题?
回答:
predict
函数在寻找一个名为speed
的变量,但当你用$
符号进行子集选择时,这个变量就不再有名字了。
所以,以下这种预测方式是有效的:
predict(cars.gb, newdata = data.frame(speed = cars_new$speed))
或者保持原来的名字不变:
predict(cars.gb, newdata = cars_new['speed'])