開始使用免費開始

每日價格區間

股票的每日價格區間是衡量市場波動度的良好指標。

你在一家投資公司擔任資料分析師。你的主管想計算全球前 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
___
編輯並執行程式碼