Kom igångKom igång gratis

Dagliga prisintervall

Det dagliga intervallet för en akties pris är ett bra mått på dess marknadsvolatilitet.

Du arbetar som dataanalytiker på ett investeringsbolag. Din chef vill beräkna det dagliga intervallet för aktierna hos de tio största teknikbolagen i världen. Du har en lista med CSV-filer, stock_list, med dagliga aktiekurser. För varje fil vill du lägga till en kolumn för intervallet. Den juniora dataanalytikern har skrivit följande R-kod för att göra detta:

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)
}

Du vill köra den här koden parallellt på en dedikerad Apple Mac och föredrar att använda ett FORK-kluster för bättre resultat. Paketet parallel är inläst i din arbetsmiljö.

Den här övningen är en del av kursen

Parallell programmering i R

Visa kurs

Övningsinstruktioner

  • Använd den angivna koden för att skapa en funktion add_range() som tar en filsökväg som argument och lägger till en kolumn range i filen.
  • Skapa ett FORK-kluster med fyra kärnor.
  • Applicera add_range() på varje element i stock_list parallellt.
  • Stoppa klustret.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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
___
Redigera och kör kod