Применить прогнозирование () с помощью lapply () к списку data.frames и вывести список data.frames - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть два списка в R, которые содержат несколько data.frames. Один список представляет собой набор обучающих данных, а другой - набор тестовых данных. Я хотел бы использовать обучающие данные для обучения модели, а затем создавать прогнозы для тестовых данных. Пока что я могу использовать список тренировок, чтобы делать прогнозы для одного набора данных (survey_points - это объект data.frame). В результате получается список предсказаний, соответствующих каждому обучающему data.frame в объекте train_list, идеально:

true_preds = lapply(train_list,  function(x)  predict(ranger(bc_title4 ~ ACurr15 + Bath15 + Comp13 + East15 + Mcur15 + Nor15 + vrm15 + Slop11 + MWav13 + X1IC2CR3IS4,
   data = x), survey_points)$predictions)

Тем не менее, когда я пытаюсь использовать свой список обучающих data.frames, чтобы предсказать мой список тестовых data.frames, используя следующий код:

test_preds = lapply(train_list,  function(x)  predict(ranger(bc_title4 ~ ACurr15 + Bath15 + Comp13 + East15 + Mcur15 + Nor15 + vrm15 + Slop11 + MWav13 + X1IC2CR3IS4,
   data = x), test_list)$predictions)

Я получаю следующую ошибку и трассировку:

 Error in data[, forest$independent.variable.names, drop = FALSE] : 


incorrect number of dimensions 
7.
predict.ranger.forest(forest, data, predict.all, num.trees, type, 
    se.method, seed, num.threads, verbose, object$inbag.counts, 
    ...) 
6.
predict(forest, data, predict.all, num.trees, type, se.method, 
    seed, num.threads, verbose, object$inbag.counts, ...) 
5.
predict.ranger(ranger(bc_title4 ~ ACurr15 + Bath15 + Comp13 + 
    East15 + Mcur15 + Nor15 + vrm15 + Slop11 + MWav13 + X1IC2CR3IS4, 
    data = x), test_list) 
4.
predict(ranger(bc_title4 ~ ACurr15 + Bath15 + Comp13 + East15 + 
    Mcur15 + Nor15 + vrm15 + Slop11 + MWav13 + X1IC2CR3IS4, data = x), 
    test_list) 
3.
predict(ranger(bc_title4 ~ ACurr15 + Bath15 + Comp13 + East15 + 
    Mcur15 + Nor15 + vrm15 + Slop11 + MWav13 + X1IC2CR3IS4, data = x), 
    test_list) 
2.
FUN(X[[i]], ...) 
1.
lapply(train_list, function(x) predict(ranger(bc_title4 ~ ACurr15 + 
    Bath15 + Comp13 + East15 + Mcur15 + Nor15 + vrm15 + Slop11 + 
    MWav13 + X1IC2CR3IS4, data = x), test_list)) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...