Aan de slagGa gratis aan de slag

Dagelijkse prijsranges

De dagelijkse range van de koers van een aandeel is een goede indicator voor de marktvolatiliteit.

Je werkt als Data Analyst bij een beleggersfirma. Je baas wil de dagelijkse range berekenen voor de aandelen van de tien grootste techbedrijven ter wereld. Je hebt een lijst met CSV-bestanden, stock_list, met de dagelijkse aandelenkoersen. Voor elk bestand wil je een kolom met de range toevoegen. De junior Data Analyst heeft hiervoor de volgende R-code geschreven:

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

Je wilt deze code parallel draaien op een speciale Apple Mac en daarbij een FORK-cluster gebruiken voor betere resultaten. Het pakket parallel is geladen in je werkruimte.

Deze oefening maakt deel uit van de cursus

Parallel programmeren in R

Cursus bekijken

Oefeninstructies

  • Gebruik de gegeven code om een functie add_range() te maken die een bestandspad als argument neemt en een kolom range aan dit bestand toevoegt.
  • Maak een FORK-cluster met vier cores.
  • Pas add_range() parallel toe op elk element van stock_list.
  • Stop het cluster.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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
___
Code bewerken en uitvoeren