Добавить значение итерации в функцию с циклом - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь создать функцию, содержащую все oop, целью которой является получение прогнозов из списка моделей. Я абсолютный новичок ie с циклами ... Полагаю, что это легко сделать с помощью мурлыкающих или применять семейные функции, однако я застрял в правильном подходе.

pred_getter<-function(testset,...){
  for(i in list(...)){
df<-data.frame(predict(fit_xgb,testdf,type = "prob")[1])
return(df)
}
}
pred_getter(testdf,fit_xgb,fit_glm,fit_lgt)

Спасибо за вашу помощь

1 Ответ

1 голос
/ 04 февраля 2020

Рассмотрите возможность передачи списка символов моделей, а затем создайте список фреймов данных прогнозируемых значений с lapply, используя get на имени объекта. Наконец, объедините список фреймов данных для конечного объекта:

pred_getter <- function(testset, models) {
    # GENERATE NAMED LIST OF DATA FRAMES
    df_list <- lapply(models, function(m) 
                    data.frame(model = m,
                               prediction = predict(get(m), testset, type = "prob")[1])
               )

    # BUILD SINGLE DATA FRAME OF ALL MODELS
    pred_df <- do.call(rbind.data.frame, df_list)
}


final_df <- pred_getter(testdf, c("fit_xgb", "fit_glm", "fit_lgt"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...