climas = read_csv(here::here("data/clima_cg_jp-semanal.csv"), 
                  col_types = "cTdddddd")

glimpse(climas)
## Rows: 2,748
## Columns: 8
## $ cidade <chr> "Campina Grande", "Campina Grande", "Campina Grande", "Campina …
## $ semana <dttm> 1992-12-27, 1993-01-03, 1993-01-10, 1993-01-31, 1993-02-07, 19…
## $ tmedia <dbl> 26.13333, 26.11905, 25.76667, 25.74000, 26.31429, 26.28571, 26.…
## $ tmax   <dbl> 30.4, 32.4, 32.2, 32.0, 32.7, 32.7, 32.3, 32.3, 32.1, 31.2, 32.…
## $ tmin   <dbl> 20.7, 19.3, 19.7, 19.9, 19.6, 20.0, 20.4, 21.2, 19.0, 19.0, 19.…
## $ chuva  <dbl> 0.0, 0.0, 0.0, 0.4, 0.3, 0.0, 4.9, 0.0, 0.0, 6.1, 0.4, 1.2, 0.0…
## $ mes    <dbl> 12, 1, 1, 1, 2, 2, 2, 2, 10, 11, 11, 11, 11, 12, 12, 12, 12, 1,…
## $ ano    <dbl> 1992, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 199…

Q1: Qual a cidade é mais quente? Isso muda se considerarmos apenas o período de janeiro e fevereiro (pico do verão)?

# Calcular a temperatura média para João Pessoa e Campina Grande
temperatura_media_jp <- mean(climas$tmedia[climas$cidade == "João Pessoa"])
temperatura_media_cg <- mean(climas$tmedia[climas$cidade == "Campina Grande"])

# Comparar as temperaturas médias
if (temperatura_media_jp > temperatura_media_cg) {
  cidade_mais_quente <- "João Pessoa"
} else if (temperatura_media_jp < temperatura_media_cg) {
  cidade_mais_quente <- "Campina Grande"
} else {
  cidade_mais_quente <- "Empate"
}

Resultado

A cidade mais quente entre João Pessoa e Campina Grande, com base na temperatura média é João Pessoa com uma média de 27.65318.

Filtramos os dados da temperatura do data frame climas para a cada cidade e nomeamos respectivamente.

# Filtrar os dados de temperatura para Campina Grande
dados_cg <- climas[climas$cidade == "Campina Grande", ]

# Filtrar os dados de temperatura para João Pessoa
dados_jp <- climas[climas$cidade == "João Pessoa", ]

Filtramos os dados de temperatura para cada cidade usando o data frame climas. Criamos um novo data frame dados_cg para os dados de Campina Grande e dados_jp para os dados de João Pessoa.

Em seguida, usamos o pacote ggplot2 para criar um gráfico de linha, onde a temperatura média é mostrada ao longo das semanas. Utilizamos geom_line() para adicionar uma linha para cada cidade, especificando a coluna de semana no eixo x e a temperatura média no eixo y.

# Criar o gráfico de linha
comparacao <- ggplot() +
  geom_line(data = dados_cg, aes(x = semana, y = tmedia, color = "Campina Grande")) +
  geom_line(data = dados_jp, aes(x = semana, y = tmedia, color = "João Pessoa")) +
  labs(title = "Comparação da temperatura entre Campina Grande e João Pessoa",
       x = "Semana", y = "Temperatura Média", color = "Cidade") +
  scale_color_manual(values = c("Campina Grande" = "blue", "João Pessoa" = "red"))

comparacao

Agora, calculamos a temperatura média para cada cidade usando o data frame climas. Em seguida, calculamos a diferença entre as temperaturas médias das duas cidades. Criamos um novo data frame chamado resultado com as colunas “Cidade”, “Temperatura_Média” e “Diferença” para armazenar os resultados.

# Calcular a diferença entre as temperaturas médias
diferenca_temperatura <- temperatura_media_cg - temperatura_media_jp

# Criar um data frame com os resultados
resultado <- data.frame(
  Cidade = c("Campina Grande", "João Pessoa"),
  Temperatura_Média = c(temperatura_media_cg, temperatura_media_jp),
  Diferença = diferenca_temperatura
)

resultado
##           Cidade Temperatura_Média Diferença
## 1 Campina Grande          24.69077 -2.962404
## 2    João Pessoa          27.65318 -2.962404

Então, por fim criamos um gráfico de barras para mostrar a diferença entre as duas cidades.

# Criar o gráfico de barras
grafico <- ggplot(resultado, aes(x = Cidade, y = Temperatura_Média)) +
  geom_bar(stat = "identity", fill = "blue") +
  labs(title = "Diferença de temperatura média entre Campina Grande e João Pessoa",
       x = "Cidade", y = "Diferença de temperatura")

grafico

Aqui começamos por filtrar os dados dos meses de janeiro e fevereiro do nosso data frame climas.

# Filtrar os dados de temperatura para os meses de janeiro e fevereiro
dados_jan_fev_cg <- climas[climas$cidade == "Campina Grande" & climas$mes %in% c(1, 2), ]
dados_jan_fev_jp <- climas[climas$cidade == "João Pessoa" & climas$mes %in% c(1, 2), ]

Depois, calculamos a tempretaura média desses meses para as duas cidades, e em seguida mostramos os valores respectivamente.

# Calcular a temperatura média para Campina Grande nos meses de janeiro e fevereiro
temperatura_media_jan_fev_cg <- mean(dados_jan_fev_cg$tmedia)

# Calcular a temperatura média para João Pessoa nos meses de janeiro e fevereiro
temperatura_media_jan_fev_jp <- mean(dados_jan_fev_jp$tmedia)
# Exibir as temperaturas médias nos meses de janeiro e fevereiro
cat("A temperatura média em Campina Grande nos meses de janeiro e fevereiro é", temperatura_media_jan_fev_cg, "°C.\n")
## A temperatura média em Campina Grande nos meses de janeiro e fevereiro é 25.85547 °C.
cat("A temperatura média em João Pessoa nos meses de janeiro e fevereiro é", temperatura_media_jan_fev_jp, "°C.\n")
## A temperatura média em João Pessoa nos meses de janeiro e fevereiro é 28.65027 °C.

Então pensamos em mostrar esses dados das duas cidades de janeiro e fevereiro em um gráfico.

# Criar o gráfico de linha
grafico_jan_fev <- ggplot() +
  geom_line(data = dados_jan_fev_cg, aes(x = semana, y = tmedia, color = "Campina Grande")) +
  geom_line(data = dados_jan_fev_jp, aes(x = semana, y = tmedia, color = "João Pessoa")) +
  labs(title = "Temperatura nas cidades de Campina Grande e João Pessoa (Janeiro-Fevereiro)",
       x = "Semana", y = "Temperatura Média", color = "Cidade") +
  scale_color_manual(values = c("Campina Grande" = "green", "João Pessoa" = "orange"))
# Renderizar o gráfico
grafico_jan_fev


Q2: Quais os meses mais quentes e mais frios? Como você descreveria a temperatura das festas juninas das cidades nos últimos anos?

R: De início preferi contar a temperatura de todos os meses para as duas cidades, mostrar para cada cidade os meses mais quentes e os meses mais frios. As cidades têm festas juninas? Se sim, qual é a temperatura durante essas festas. Essas festas decorrem em tempos quentes ou frios? Se sim, para qualquer um dos tempos, mostrar os dados da temperatura de forma decrescente a partir do ano mais recente.

Vamos começar por filtrar as duas cidade para evitar perca de dados ou intevenção de outros, e depois vamos calcular a média da temperatura por mês e cidade. Calcule a temperatura média para cada mês em cada cidade e identifique os meses mais quentes e mais frios.

# Calcular a temperatura média para cada mês em Campina Grande
media_por_mes_cg <- aggregate(dados_cg$tmedia, by = list(dados_cg$mes), FUN = mean)
media_por_mes_cg <- media_por_mes_cg[order(media_por_mes_cg$x, decreasing = TRUE), ]

mes_mais_quente_cg <- media_por_mes_cg$Group.1[1]
mes_mais_frio_cg <- media_por_mes_cg$Group.1[length(media_por_mes_cg$Group.1)]

# Calcular a temperatura média para cada mês em João Pessoa
media_por_mes_jp <- aggregate(dados_jp$tmedia, by = list(dados_jp$mes), FUN = mean)
media_por_mes_jp <- media_por_mes_jp[order(media_por_mes_jp$x, decreasing = TRUE), ]

mes_mais_quente_jp <- media_por_mes_jp$Group.1[1]
mes_mais_frio_jp <- media_por_mes_jp$Group.1[length(media_por_mes_jp$Group.1)]
# Exibir os meses mais quentes e mais frios
cat("Campina Grande:\n")
## Campina Grande:
cat("Mês mais quente:", mes_mais_quente_cg, "\n")
## Mês mais quente: 12
cat("Mês mais frio:", mes_mais_frio_cg, "\n\n")
## Mês mais frio: 7
cat("João Pessoa:\n")
## João Pessoa:
cat("Mês mais quente:", mes_mais_quente_jp, "\n")
## Mês mais quente: 3
cat("Mês mais frio:", mes_mais_frio_jp, "\n")
## Mês mais frio: 7

A seguir, criamos um gráfico de barras para representar os meses mais quentes primeiro para João Pessoa.

# Criar o gráfico de barras
grafico <- ggplot(media_por_mes_jp, aes(x = Group.1, y = x)) +
  geom_bar(stat = "identity", fill = "lightblue") +
  labs(title = "Temperatura Média por Mês - João Pessoa",
       x = "Mês", y = "Temperatura Média") +
  theme_bw()

# Adicionar destaque para os meses mais quentes e mais frios
grafico <- grafico +
  geom_rect(data = media_por_mes_jp[media_por_mes_jp$Group.1 == mes_mais_quente_jp, ],
            aes(xmin = Group.1 - 0.4, xmax = Group.1 + 0.4, ymin = 0, ymax = x),
            fill = "red", alpha = 0.3) +
  geom_rect(data = media_por_mes_jp[media_por_mes_jp$Group.1 == mes_mais_frio_jp, ],
            aes(xmin = Group.1 - 0.4, xmax = Group.1 + 0.4, ymin = 0, ymax = x),
            fill = "blue", alpha = 0.3)

grafico

Por último, criamos um gráfico de barras para representar os meses mais quentes primeiro para Campina Grande.

# Criar o gráfico de barras
grafico <- ggplot(media_por_mes_cg, aes(x = Group.1, y = x)) +
  geom_bar(stat = "identity", fill = "lightblue") +
  labs(title = "Temperatura Média por Mês - Campina Grande",
       x = "Mês", y = "Temperatura Média") +
  theme_bw()

# Adicionar destaque para os meses mais quentes e mais frios
grafico <- grafico +
  geom_rect(data = media_por_mes_cg[media_por_mes_cg$Group.1 == mes_mais_quente_cg, ],
            aes(xmin = Group.1 - 0.4, xmax = Group.1 + 0.4, ymin = 0, ymax = x),
            fill = "brown", alpha = 0.3) +
  geom_rect(data = media_por_mes_cg[media_por_mes_cg$Group.1 == mes_mais_frio_cg, ],
            aes(xmin = Group.1 - 0.4, xmax = Group.1 + 0.4, ymin = 0, ymax = x),
            fill = "purple", alpha = 0.3)

grafico

Para ver como é a temperatura nas festas juninas das duas cidades, começamos por filtrar a temperatura do mês de junho para as duas cidades.

# Filtrar os dados de temperatura para o mês de junho em Campina Grande
dados_junho_cg <- climas[climas$cidade == "Campina Grande" & climas$mes == "6", ]

# Filtrar os dados de temperatura para o mês de junho em João Pessoa
dados_junho_jp <- climas[climas$cidade == "João Pessoa" & climas$mes == "6", ]

A seguir, criamos um gráfico de barras para representar a temperatura na cidade de Campina Grande no mês de junho, que é onde decorrem as festas juninas para ambas as cidades.

# Criar o gráfico de barras
grafico <- ggplot() +
  geom_bar(data = dados_junho_cg, aes(x = semana, y = tmedia, fill = "Campina Grande"),
           stat = "identity", position = "dodge") +
  labs(title = "Temperatura em Junho",
       x = "Semana", y = "Temperatura Média", fill = "Cidade") +
  scale_fill_manual(values = c("Campina Grande" = "brown")) +
  theme_bw()

grafico

Em seguida criamos um gráfico de barras para representar a temperatura na cidade de João Pessoa como fizemos anteriormente para a outra cidade.

# Criar o gráfico de barras
grafico <- ggplot() +
  geom_bar(data = dados_junho_jp, aes(x = semana, y = tmedia, fill = "João Pessoa"),
           stat = "identity", position = "dodge") +
  labs(title = "Temperatura em Junho",
       x = "Semana", y = "Temperatura Média", fill = "Cidade") +
  scale_fill_manual(values = c("João Pessoa" = "darkgreen")) +
  theme_bw()

grafico

Para responder a pergunta da temperatura do mês de junho ou festas juninas nos últimos anos, pensamos em considerar no data frame climas os dados a partir do ano de 2015, visto que a ausência de dados nos anos mais recentes. Então, criamos um filtro para as duas cidades.

# Filtrar os dados de temperatura para o mês de junho nos últimos anos em Campina Grande
dados_junho_cg <- climas[climas$cidade == "Campina Grande" & climas$mes == "6" & climas$ano >= 2015, ]

# Filtrar os dados de temperatura para o mês de junho nos últimos anos em João Pessoa
dados_junho_jp <- climas[climas$cidade == "João Pessoa" & climas$mes == "6" & climas$ano >= 2015, ]

A seguir, em vez de exibir os dados em uma tabela, pensamos ser mais compreensível mostrar em um gráfico, usamos um de linha,

# Criar o gráfico
grafico <- ggplot() +
  geom_line(data = dados_junho_cg, aes(x = ano, y = tmedia, color = "Campina Grande")) +
  geom_line(data = dados_junho_jp, aes(x = ano, y = tmedia, color = "João Pessoa")) +
  labs(title = "Temperatura em Junho - Últimos anos",
       x = "Ano", y = "Temperatura Média", color = "Cidade") +
  scale_color_manual(values = c("Campina Grande" = "darkblue", "João Pessoa" = "darkred")) +
  theme_bw()

grafico

### Q3: Quanto chove por semana em JP e CG? Descreva a distribuição do volume de chuvas para as cidades? R: Começamos por primeiro filtrar os dados das duas cidades, João Pessoa e Campina Grande, do data frame climas. Em seguida, agrupamos os dados por cidade e semana, calculando o total de chuva para cada semana.
### Q4: Qual a relação entre a temperatura de uma semana e a temperatura da semana anterior (descreva para as duas cidades)? R: Aqui comecei usando o meu código em estética diferente usando pipe, dei início novamente com o filtro dos dados das duas cidades, João Pessoa e Campina Grande, do data frame climas. Em seguida, ordenei os dados por cidade e semana.
Depois, fez-se o calculo da temperatura da semana anterior para cada semana em cada cidade usando a função lag() e adicionei essa informação ao data frame.
Em seguida, fiz o filtro das semanas que possuem valores válidos tanto para a temperatura atual quanto para a temperatura da semana anterior.
Por fim, fez-se o gráfico de dispersão, onde cada ponto representa a temperatura atual em relação à temperatura da semana anterior. Os pontos são coloridos de acordo com a cidade correspondente.
Esse gráfico permitirá visualizar a relação entre a temperatura de uma semana e a temperatura da semana anterior para cada uma das cidades, identificando possíveis padrões ou tendências
```r dados_cidades <- climas %>% arrange(cidade, semana)
dados_cidades <- dados_cidades %>% group_by(cidade) %>% mutate(temperatura_semana_anterior = lag(tmedia))
dados_cidades <- dados_cidades %>% filter(!is.na(temperatura_semana_anterior))
ggplot(dados_cidades, aes(x = temperatura_semana_anterior, y = tmedia, color = cidade)) + geom_point() + labs(x = “Temperatura Semana Anterior”, y = “Temperatura Atual”, color = “Cidade”) + theme_minimal() ```
Gráfico relacional entre a semana anterior e a semana actual nas duas cidades.

Q5: Qual a relação entre temperatura e chuvas nas semanas em que choveu (descreva para as duas cidades)?

R: Para responder e esta questão comecei por filtrar os dados das duas cidades, João Pessoa e Campina Grande, do data frame climas. Em seguida, fiz outro filtro dos dados apenas para as semanas em que houve precipitação (chuva > 0).

A seguir, pensei em criar um gráfico de dispersão, onde cada ponto representa a temperatura e a quantidade de chuva correspondentes nas semanas em que houve chuva. Os pontos são coloridos de acordo com a cidade correspondente.

Dessa forma, pensei ser mais eficiente em visualizar a relação entre a temperatura e a quantidade de chuva nas semanas em que houve precipitação em João Pessoa e Campina Grande.

Esse gráfico permitirá identificar possíveis padrões ou tendências entre as variáveis.

dados_cidades <- climas %>%
  filter(cidade %in% c("João Pessoa"))

dados_chuva <- dados_cidades %>%
  filter(chuva > 0)

ggplot(dados_chuva, aes(x = tmedia, y = chuva, fill)) +
  geom_point() +
  labs(x = "Temperatura", y = "Chuva (mm)", fill) +
  theme_minimal()

Gráfico relacional entre temperatura e as chuvas para João Pessoa.

dados_cidades <- climas %>%
  filter(cidade %in% c("Campina Grande"))

dados_chuva <- dados_cidades %>%
  filter(chuva > 0)

ggplot(dados_chuva, aes(x = tmedia, y = chuva, color = "")) +
  geom_point() +
  labs(x = "Temperatura", y = "Chuva (mm)", color = "Campina Grande" ) +
  theme_minimal()

Gráfico relacional entre temperatura e as chuvas para Campina Grande.

Podemos ver que a relação entre ambas é próxima, mas João Pessoa tem mais volume de chuvas do que Campina Grande e sua temperatura também é mais elevada.