【问题标题】:passing a list of dataframe into my own function将数据框列表传递给我自己的函数
【发布时间】:2021-11-22 18:39:42
【问题描述】:

我有一个清单

test2 <- list(a = tibble(qty = c(371.00000,125.00000,193.00000,8.00000,113.00000,247.00000,2.00000),
                         new_aur = c(83000,90000,110000, 114000, 117000, 119000, 120000)),
              b = tibble(qty = c(371.00000,125.00000,193.00000,8.00000,113.00000,247.00000,2.00000),
                         new_aur = c(80000,93000,120000, 113000, 117000, 119000, 120000))))

还有一个函数

model_fitting_decay <- function(x) {
  set.seed(4123)
  x <- data.frame(x)
  trainIndex <- createDataPartition(x$qty, p = .8, 
                                    list = FALSE, 
                                    times = 1)
  
  df_data_train <- x[trainIndex,]
  
  trcontrol <- trainControl(method = "repeatedcv",
                            number = 10,
                            repeats = 3)
  
  model_train_decay <- lm(log(qty)~new_AUR, data=df_data_train)
  return(model_train_decay)
}

如何将我的列表作为参数传递给我的函数? 我已经尝试过使用do.call,但它返回错误unused argument ( bla bla bla)

请帮忙。谢谢

【问题讨论】:

    标签: r list function


    【解决方案1】:

    您可以使用lapplypurrr::map

    model_fitting_decay <- function(x) {
      set.seed(4123)
      x <- data.frame(x)
      trainIndex <- caret::createDataPartition(x$qty, p = .8, 
                                        list = FALSE, 
                                        times = 1)
      
      df_data_train <- x[trainIndex,]
      
      trcontrol <- caret::trainControl(method = "repeatedcv",
                                number = 10,
                                repeats = 3)
      
      model_train_decay <- lm(log(qty)~new_aur, data=df_data_train)
      return(model_train_decay)
    }
    
    lapply(test2, model_fitting_decay)
    

    【讨论】:

      猜你喜欢
      • 2015-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多