Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中制作多个模型(尝试各种参数)而不使用for循环_R_Loops_Purrr - Fatal编程技术网

在R中制作多个模型(尝试各种参数)而不使用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()生长对象。取而代之的是,考虑使用一个应用族函数。一种方法

我正在尝试测试我的模型,之前我使用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()
生长对象。取而代之的是,考虑使用一个应用族函数。一种方法是使用
expand.grid
构建两个参数的所有可能组合的数据框,然后使用
mapply
(或其非简化包装器
Map
)将列值元素传递到模型中


proc\u model Check out
caret
库。一个非
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)