CommencerCommencer gratuitement

Boucles foreach imbriquées pour les tendances de prix

La Bourse est connue pour son comportement imprévisible. Vous travaillez pour une société d’investissement et votre responsable souhaite visualiser les tendances des cours sur une fenêtre d’une semaine.

Vous avez récupéré les données quotidiennes des cours de dix entreprises technologiques depuis 2015. Le Data Scientist de votre équipe a fourni du code pour ajuster des modèles de régression. Vous prévoyez de paralléliser ce code à l’aide de foreach(), %:% et %dopar%.

Le nombre total de colonnes à parcourir est enregistré dans votre espace de travail sous ncols, et le nombre de lignes sous nrows. Les packages parallel, doParalel et foreach ont été chargés pour vous. Le cluster cl a été configuré. Vous devez écrire les boucles foreach() imbriquées.

Cet exercice fait partie du cours

Programmation parallèle en R

Afficher le cours

Instructions

  • Enregistrez le cluster à utiliser avec les boucles foreach.
  • Indiquez une boucle foreach pour itérer sur les colonnes de 1 à ncols, collecter les résultats avec "cbind" et utiliser l’opérateur d’imbrication.
  • Indiquez une autre boucle foreach pour itérer sur les lignes de 1 à nrows, collecter les résultats avec "c" et utiliser l’opérateur do-parallel.
  • Arrêtez le cluster une fois tous les calculs terminés.

Exercice interactif pratique

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

# Register the cluster to use with %dopar%
___
# Use foreach loop to iterate over columns one to ncol
moving_trend <- foreach(___, ___) %:%
# Iterate over rows one to nrows within each column
  foreach(___, ___) %dopar% {
    prices <- data[row:(row + 6), col]
    if (any(is.na(prices))) NA
    else {days <- 1:7
          model <- lm(prices ~ days)
          model$coefficients[2]}
  }
# Stop cluster  
___
print(paste("Total number of models fit:", sum(!is.na(moving_trend))))
Modifier et exécuter le code