Laços foreach aninhados para tendências de preços
O mercado de ações é conhecido por seu comportamento imprevisível. Você trabalha em uma empresa de investimentos e seu chefe quer ver as tendências dos preços das ações em uma janela de uma semana.
Você obteve os dados de preços diários de ações de dez empresas de tecnologia desde 2015. A Pessoa Cientista de Dados do seu time forneceu um código para ajustar modelos de regressão. Você planeja paralelizar esse código usando foreach(), %:% e %dopar%.
O número total de colunas a iterar está salvo no seu workspace como ncols, e o número de linhas como nrows. Os pacotes parallel, doParalel e foreach já foram carregados para você. O cluster, cl, foi configurado. Você precisa escrever os laços foreach() aninhados.
Este exercicio faz parte do curso
Programação Paralela em R
Instruções do exercicio
- Registre o cluster para usar com laços
foreach. - Especifique um laço foreach para iterar pelas colunas de 1 até
ncols, coletar os resultados com"cbind"e usar o operador de aninhamento. - Especifique outro laço foreach para iterar pelas linhas de 1 até
nrows, coletar os resultados com"c"e usar o operador do-parallel. - Pare o cluster quando todos os cálculos terminarem.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# 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))))