【问题标题】:Add iteration value in a function with a loop在带有循环的函数中添加迭代值
【发布时间】:2020-02-04 17:54:04
【问题描述】:

我正在尝试创建一个包含循环的函数,其目的是从模型列表中获取预测。我是一个有循环的新手......我想这可能很容易通过 purrr 或应用家庭功能来完成,但是我被困在正确的方式中。

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)

感谢您的帮助

【问题讨论】:

    标签: r loops


    【解决方案1】:

    考虑传入模型的字符列表,然后在对象名称上使用get 使用lapply 构建预测值数据帧列表。最后,连接最终对象的数据帧列表:

    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"))
    

    【讨论】:

    • 很高兴听到并乐于提供帮助!编码愉快!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    相关资源
    最近更新 更多