始める無料で始める

イテレートしてフィルターする

データコンサルタントとして、さまざまな形や形式のデータを受け取ります。あるクライアントから、世界中の高等教育機関に関するデータを含む40ギガバイトのCSVファイルが転送されてきました。

ジュニアアナリストはメモリ不足のためデータを正しくパースできず、データセット全体を扱うための計算資源に割ける予算もありません。現在の分析では、オーストラリアの機関のみを対象にすれば十分です。CSVのファイルパスはすでに変数 filepath に保存されています。このデータの効率的なリーダーを実装するよう依頼されました。paralleldoParallelforeachiterators パッケージは読み込まれています。

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

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

コースを見る

演習の手順

  • イテレータを使って filepath から行を読み込みます。
  • 適切な関数で結果を結合し、データフレームを作成します。
  • 並列演算子を指定します。

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

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

cl <- makeCluster(4)
registerDoParallel(cl)
# Use an iterator to read lines
foreach(l = ___,
        # Combine the lines as rows
        ___ = ___
        # Use the parallel operator
        ) ___ {
  line <- strsplit(l, ",")[[1]]
  if (line[4] == "Australia") {
    return(line)
  }
}

stopCluster(cl)
コードを編集して実行