始める無料で始める

株価トレンドのためのネストされた foreach ループ

株式市場は予測が難しいことで有名です。あなたは投資会社に勤めており、上司は1週間のウィンドウで株価のトレンドを見たいと考えています。

2015年以降の10社のテック企業について、日次の株価データを入手しました。チームのData Scientistが回帰モデルを当てはめるコードを用意してくれました。あなたはこのコードを foreach()%:%%dopar% を使って並列化する予定です。

反復処理する列の総数は ncols、行数は nrows としてワークスペースに保存されています。paralleldoParalelforeach パッケージは読み込まれています。クラスター cl も設定済みです。あなたはネストされた foreach() ループを書く必要があります。

この演習はコースの一部です

R による並列プログラミング

コースを見る

演習の手順

  • foreach ループで使用するクラスターを登録します。
  • 列 1 から ncols を反復する foreach ループを指定し、結果は "cbind" で収集し、ネスト用の演算子を使います。
  • 行 1 から nrows を反復する別の foreach ループを指定し、結果は "c" で収集し、do-parallel 演算子を使います。
  • すべての計算が終わったらクラスターを停止します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# 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))))
コードを編集して実行