开始使用免费开始使用

用嵌套 foreach 循环分析价格趋势

股市以其难以预测而闻名。您在一家投资公司工作,老板希望查看一周窗口内的股票价格趋势。

您已经获取了自 2015 年以来 10 家科技公司的每日股价数据。团队中的数据科学家提供了用于拟合回归模型的代码。您计划使用 foreach()%:%%dopar% 对这段代码进行并行化。

要迭代的总列数已保存在工作区中的 ncols,行数为 nrowsparalleldoParalelforeach 包已为您加载完毕。集群 cl 已配置好。您需要编写嵌套的 foreach() 循环。

本练习是课程的一部分

R 并行编程

查看课程

练习说明

  • 将要用于 foreach 循环的集群注册。
  • 指定一个 foreach 循环,从第 1 列到第 ncols 列迭代,用 "cbind" 收集结果,并使用嵌套运算符。
  • 再指定一个 foreach 循环,从第 1 行到第 nrows 行迭代,用 "c" 收集结果,并使用并行执行运算符。
  • 所有计算完成后停止集群。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Register the cluster to use with %dopar%
___
# Use foreach loop to iterate over columns one to ncol
moving_trend <- foreach(___, ___) %:%
# Iterate over rows one to nrows within each column
  foreach(___, ___) %dopar% {
    prices <- data[row:(row + 6), col]
    if (any(is.na(prices))) NA
    else {days <- 1:7
          model <- lm(prices ~ days)
          model$coefficients[2]}
  }
# Stop cluster  
___
print(paste("Total number of models fit:", sum(!is.na(moving_trend))))
编辑并运行代码