seq_len中的2个参数传递给'seq_len'时出错,需要在R中使用foreach包中的1个? [包括代码和图像]

问题描述

我正在尝试使用并行处理在R中运行for循环。我想在护林员模型上进行网格搜索,以测试模型中的不同组合,以查看在哪里可以最佳地调整模型。为了测试不同的调整方法,我需要对数据运行一个循环,代码如下:

# Creating simulations    -------------------------------------------------
hyper_grid <- expand.grid(
  num.trees = c(300),quant = c(0.94,0.95),mtry = c(5,4),nodSize = c(50,40),num_weeks_train = c(6,5),rmse = NA
);

For循环

foreach (j = seq_len(nrow(hyper_grid),.packages ='magrittr' )) %dopar% {
  print(j)
  # j = 1
  fit = BVR_model_sim(
    num_weeks_train = hyper_grid$num_weeks_train[j],data = df_base,quntile = hyper_grid$quant[j],start_week = 202001,end_week = 202016,ntrees = hyper_grid$num.trees[j],randMtry = hyper_grid$mtry[j],nodSize = hyper_grid$nodSize[j]
  )
  
  # hyper_grid$rmse[j] <- fit$prediction_error
  
  sim_result <- rbind(sim_result,cbind(hyper_grid[j,],as.data.frame(fit$output)))
  
  print(sim_result)
};

错误

Error in seq_len(nrow(hyper_grid),.packages = "magrittr") : 
  2 arguments passed to 'seq_len' which requires 1

我的非并行循环运行得很好,但外观却很慢

for (j in seq_len(nrow(hyper_grid)))  {
  print(j)
  # j = 1
  fit = BVR_model_sim(
    num_weeks_train = hyper_grid$num_weeks_train[j],as.data.frame(fit$output)))
  
  print(sim_result)
};

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)