每日價格區間
股票的每日價格區間是衡量市場波動度的良好指標。
你在一家投資公司擔任資料分析師。你的主管想計算全球前 10 大科技公司股票的每日價格區間。
你手上有一份每日股價的 CSV 檔清單 stock_list。對於每個檔案,你想新增一個區間欄位。初階資料分析師已經寫了以下 R 程式碼來達成此事:
for (file in file_list) {
df <- read.csv(file)
df$range <- 0
for (r in 1:nrow(df)) {
df$range[r] <- df$High[r] - df$Low[r]
}
write.csv(df, file)
}
你想在一台專用的 Apple Mac 上平行執行這段程式碼,並希望使用 FORK 叢集以獲得更好的效果。你的工作環境已載入 parallel 套件。
本練習屬於課程
R 平行程式設計
練習說明
- 使用提供的程式碼建立
add_range()函式,讓它以檔案路徑作為引數,並為該檔案新增range欄位。 - 建立一個使用 4 核心的 FORK 叢集。
- 以平行方式將
add_range()套用到stock_list的每個元素。 - 停止叢集。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Make a function out of existing code
add_range <- function (file) {
___
}
# Make FORK cluster of four cores
cluster <- makeCluster(___, type = "___")
# Apply add_range to stock_list in parallel
out <- parLapply(___, ___, ___)
# Stop cluster
___