r - 将数据框列表传递给我自己的函数
问题描述
我有一个清单
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)
请帮忙。谢谢
解决方案
您可以使用lapply
或purrr::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)
推荐阅读
- java - 何时以及如何在 flatMap 上执行 1 到 0..n 映射 Stream mapMulti
- r - 按日期集分组 data.table
- r - 将 Bibtex 类对象转换为为每个引用格式化的一系列文本字符串
- swift - 如何快速从父视图控制器访问子视图控制器?
- javascript - 网站所有者或服务器是否可以知道浏览器的详细信息
- excel - Excel 验证电话号码
- hyperledger-fabric - 支付网关与 Hyperledger Fabric 的集成
- python - 当使用 OpenCV 完成图像加载和调整大小时,Resnet50 会产生不同的预测
- java - 它是使用 Angular 8 和 JSP 开发社交网络 Web 应用程序的最佳方式吗
- python - 如何在 Tensorflow 中迭代 TensorSliceDataset 对象