Začněte nyníZačněte zdarma

Vnořené smyčky foreach pro analýzu cenových trendů

Akciový trh je proslulý svou nepředvídatelností. Pracuješ v investiční firmě a tvůj nadřízený chce vidět trendy v cenách akcií v průběhu jednoho týdne.

Máš k dispozici data o denních cenách akcií deseti technologických společností od roku 2015. Datový vědec z tvého týmu připravil kód pro fitting regresních modelů. Plánuješ tento kód paralelizovat pomocí foreach(), %:% a %dopar%.

Celkový počet sloupců, přes které budeš iterovat, je uložen v pracovním prostoru jako ncols, počet řádků jako nrows. Balíčky parallel, doParalel a foreach jsou už načtené. Cluster cl je připravený. Tvým úkolem je napsat vnořené smyčky foreach().

Toto cvičení je součástí kurzu

Paralelní programování v R

Zobrazit kurz

Pokyny k cvičení

  • Zaregistruj cluster pro použití se smyčkami foreach.
  • Definuj smyčku foreach pro iteraci přes sloupce od jedné do ncols, výsledky slučuj pomocí "cbind" a použij operátor pro vnořování.
  • Definuj další smyčku foreach pro iteraci přes řádky od jedné do nrows, výsledky slučuj pomocí "c" a použij operátor pro paralelní provádění.
  • Po dokončení všech výpočtů zastav cluster.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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))))
Upravit a spustit kód