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