Adicione uma soma móvel discreta aos dados de PIB
Embora ajude saber o quanto mudou de um período para o outro, você pode querer saber a mudança total desde o início do ano. Para gerar esse tipo de indicador, você pode usar o padrão split-lapply-rbind. Esse processo é semelhante ao utilizado para gerar as médias mensais de temperatura no capítulo anterior.
Neste exercício, você vai voltar aos dados gdp usados anteriormente no capítulo. Além dos valores estáticos de PIB em cada trimestre, você quer gerar uma medida da variação do PIB de um trimestre para o seguinte (usando diff()) e também uma soma móvel do acumulado no ano (year-to-date) da variação do PIB (usando split(), lapply() e rbind()).
Este exercício faz parte do curso
Estudo de Caso: Analisando Séries Temporais de Cidades em R
Instruções do exercício
- Use
diff()para produzir uma diferença trimestral simples emgdp. Certifique-se de especificar a colunagdpe definirlagigual a1período (neste caso, 1 trimestre). Salve isso no seu objetogdpcomoquarterly_diff. - Agora que você tem uma medida da variação trimestral do PIB, o próximo passo é dividir seus dados
quarterly_diffpor ano usandosplit(). Na chamada asplit(), lembre-se de especificar a colunaquarterly_diffdegdpe definir o argumentofigual a"years"(com aspas). - Use
lapply()nos dados recém-divididos. Para calcular a soma acumulada em cada ano, defina o argumentoFUNigual acumsum(sem aspas). - Use
do.call()para aplicar rbind e unir seus dadosgdpchange_ytdde volta em um objeto xts. - Por fim, use
plot.xts()para analisar a variação acumulada no ano do PIB (gdpchange_xts).
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Add a quarterly difference in gdp
gdp$quarterly_diff <- diff(___$___, lag = ___, differences = ___)
# Split gdp$quarterly_diff into years
gdpchange_years <- split(___$___, f = "___")
# Use lapply to calculate the cumsum each year
gdpchange_ytd <- lapply(___, FUN = ___)
# Use do.call to rbind the results
gdpchange_xts <- do.call(rbind, ___)
# Plot cumulative year-to-date change in GDP
plot.xts(___, type = "h")