CommencezCommencez gratuitement

Plages de prix quotidiennes

La plage quotidienne du prix d'un titre est un bon indicateur de sa volatilité sur le marché.

Vous travaillez comme analyste de données dans une firme d'investissement. Votre supérieur souhaite calculer la plage quotidienne pour les actions des dix plus grandes entreprises technologiques au monde. Vous avez une liste de fichiers CSV, stock_list, contenant les prix quotidiens des actions. Pour chaque fichier, vous voulez ajouter une colonne range. L'analyste junior a rédigé le code R suivant pour y arriver :

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

Vous souhaitez exécuter ce code en parallèle sur un Mac d'Apple dédié et utiliser une grappe FORK pour de meilleurs résultats. Le paquet parallel est chargé dans votre espace de travail.

Cette activité fait partie du cours

Programmation parallèle en R

Voir le cours

Instructions de l’exercice

  • Utilisez le code fourni pour créer une fonction add_range() qui prendra un chemin de fichier en argument et ajoutera une colonne range à ce fichier.
  • Créez une grappe FORK de quatre cœurs.
  • Appliquez add_range() à chaque élément de stock_list en parallèle.
  • Arrêtez la grappe.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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
___
Modifier et exécuter le code