Я хочу вызвать функцию predict
, используя разные модели, чтобы извлечь ее прогнозируемое значение.Я пытался использовать paste0
для вызова нужной модели, но это не работает, например:
model0 = lm(mpg ~ cyl + disp, data = mtcars)
model1 = lm(mpg ~ hp + drat, data = mtcars)
model2 = lm(mpg ~ wt + qsec, data = mtcars)
testdat0 = data.frame(cyl = 6, disp = 200)
testdat1 = data.frame(hp = 100, drat = 4)
testdat2 = data.frame(wt = 4, qsec = 20)
res = NULL
for (i in 1:3) {
res = rbind(res, c(i-1, predict(paste0('model',i-1), newdata = paste0('testdat0',i-1))))
}
, чтобы сделать это вручную
rbind(c(0, predict(model0, newdata = testdat0)),
c(1, predict(model1, newdata = testdat1)),
c(2, predict(model2, newdata = testdat2)))
1
[1,] 0 21.02061
[2,] 1 24.40383
[3,] 2 18.13825
Другой способ, которым я думал об этом, былпоместить модели и тестовые данные в 2 отдельных list()
и использовать цикл for для их вызова, но это также не сработало.Есть ли другой способ сделать это, или я делаю что-то не так .. TIA