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
Oefeninstructies
- Gebruik de gegeven code om een functie
add_range()te maken die een bestandspad als argument neemt en een kolomrangeaan dit bestand toevoegt. - Maak een FORK-cluster met vier cores.
- Pas
add_range()parallel toe op elk element vanstock_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
___