反覆與篩選
身為資料顧問,你會收到各式各樣格式的資料。某位客戶剛傳來一個 40 GB 的 CSV 檔,內容是全球高等教育機構的資料。
初階分析師因記憶體不足而無法正確解析這些資料,且沒有預算添購可一次處理整個資料集的運算資源。你目前只需要分析澳洲的機構。CSV 的檔案路徑已存放在變數 filepath 中。你被要求為這份資料實作一個高效率的讀取器。已為你載入 parallel、doParallel、foreach 與 iterators 套件。
本練習屬於課程
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)