在R中制作多个模型(尝试各种参数)而不使用for循环
我正在尝试测试我的模型,之前我使用for循环来更改模型的参数,如-在R中制作多个模型(尝试各种参数)而不使用for循环,r,loops,purrr,R,Loops,Purrr,我正在尝试测试我的模型,之前我使用for循环来更改模型的参数,如- assessment <- c() for(para1 in 1:10){ for(para2 in 1:10){ fit <- model(data, para1, para2) assessment <- c(assessment, model_score(fit)) } } 评估避免在循环中使用c()生长对象。取而代之的是,考虑使用一个应用族函数。一种方法
assessment <- c()
for(para1 in 1:10){
for(para2 in 1:10){
fit <- model(data, para1, para2)
assessment <- c(assessment, model_score(fit))
}
}
评估避免在循环中使用c()
生长对象。取而代之的是,考虑使用一个应用族函数。一种方法是使用expand.grid
构建两个参数的所有可能组合的数据框,然后使用mapply
(或其非简化包装器Map
)将列值元素传递到模型中
proc\u model Check outcaret
库。一个非for
-循环选项是使用sapply
为所有要测试的模型生成公式向量(使用paste
和as.formula
作为sapply
中使用的函数中的工作马),然后使用lappy
在结果向量的所有元素上迭代模型测试函数。这确实比简单的循环好。谢谢
proc_model <- function(p1, p2) {
fit <- model(data, p1, p2)
return(model_score(fit))
}
param_pairs <- expand.grid(para1 = 1:10, para2 = 1:10)
# VECTOR/MATRIX OUTPUT
assessment <- mapply(proc_model, param_pairs$para1, param_pairs$para2)
# LIST OUTPUT
assessment <- Map(proc_model, param_pairs$para1, param_pairs$para2)