CommencerCommencer gratuitement

Plages de prix quotidiennes

La plage quotidienne du cours d’une action est un bon indicateur de sa volatilité sur le marché.

Vous travaillez comme Data Analyst dans une société d’investissement. Votre responsable souhaite calculer la plage quotidienne pour les actions des dix plus grandes entreprises technologiques au monde. Vous disposez d’une liste de fichiers CSV, stock_list, contenant les cours quotidiens des actions. Pour chaque fichier, vous voulez ajouter une colonne de plage. Le Data Analyst junior a écrit le code R suivant pour le faire :

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 Apple Mac dédié et utiliser un cluster FORK pour de meilleures performances. Le package parallel est chargé dans votre espace de travail.

Cet exercice fait partie du cours

Programmation parallèle en R

Afficher le cours

Instructions

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

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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