# Carregando as bibliotecas das principais funcionalidades
library(tidyverse)
library(here)
library(lubridate)
library(ggbeeswarm)
theme_set(theme_bw())
# Carregando o arquivo de base no dataframe (climas)
climas = read_csv(here::here("data/clima_cg_jp-semanal.csv"),
col_types = "cTdddddd")
glimpse(climas)
## Observations: 2,748
## Variables: 8
## $ cidade <chr> "Campina Grande", "Campina Grande", "Campina Grande", "Campi...
## $ semana <dttm> 1992-12-27, 1993-01-03, 1993-01-10, 1993-01-31, 1993-02-07,...
## $ tmedia <dbl> 26.13333, 26.11905, 25.76667, 25.74000, 26.31429, 26.28571, ...
## $ tmax <dbl> 30.4, 32.4, 32.2, 32.0, 32.7, 32.7, 32.3, 32.3, 32.1, 31.2, ...
## $ tmin <dbl> 20.7, 19.3, 19.7, 19.9, 19.6, 20.0, 20.4, 21.2, 19.0, 19.0, ...
## $ 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, ...
## $ mes <dbl> 12, 1, 1, 1, 2, 2, 2, 2, 10, 11, 11, 11, 11, 12, 12, 12, 12,...
## $ ano <dbl> 1992, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, ...
Temperatura
Onde é mais quente?
# Criando um dataframe (df1) apenas com os campos que são necessários para responder a questão.
df1 <- climas %>% select(cidade, tmedia, ano)
# Agora vamos agrupar e sumarizar os dados do dataframe, agrupando por cidade e sumarizando o maior valor da variável "tmedia", assim podemos apresentar que a cidade com a maior temperatura média é João Pessoa com 30.11 graus. O comando para obter essa informação foi:
df1 %>% group_by(cidade) %>% summarise(Maximo=max(tmedia))
## # A tibble: 2 x 2
## cidade Maximo
## <chr> <dbl>
## 1 Campina Grande 28.6
## 2 João Pessoa 30.1
# Para uma melhor visualização dos dados foi construído um gráfico de pontos onde é possível verificar as temperaturas médias das duas cidades - João Pessoa e Campina Gradne. Onde é possivel visualizar que todas as temperaturas médias de João Pessoa estão acima da de Campina Grande e que vamos encontrar apenas 5 valores acima de 30 grau na cidade de João Pessoa.
df1 %>% group_by(cidade,ano) %>% summarise(Maximo=max(tmedia)) %>% ggplot() + geom_point(aes(x=ano,y=Maximo,color=cidade)) + theme(legend.position="bottom") + ggtitle("Gráfico das temperaturas médias por ano")

As temperaturas máximas semanais (o pico do calor) são tão diferentes quanto as médias? Mais?
# Foi criado um dataframe (df2) apenas com os campos: cidade, semana, tmax e tmedia, para separar das demais informações da base de dados.
df2 <- climas %>% select(cidade, semana, tmax, tmedia)
# Para uma melhor análise, vamos construir um gráfico que possa representar as temperaturas máximas (em pontos preto) com a temperatura média (em linha vermelha), assim podemos verificar que as temperaturas máximas semanais são superiores das médias.
# Gráfico com os dados das temperaturas Máxima e Média das duas cidades.
df2 %>% ggplot() + geom_point(aes(x = semana, y = tmax), color = "blue") + geom_point(aes(x = semana, y = tmedia), color = "red", stat = "identity") + ggtitle("Gráfico das temperaturas médias e máximo") + facet_grid(.~cidade) + scale_y_continuous(name="Temperatura Máxima",breaks=seq(0,35,2))

# CONCLUSÃO: Podemos verificar que as temperaturas máximas estão sempre acima do valor da temperatura média, podemos dizer que esse valor máximo pode ser uma outliers.
Quais os meses mais quentes e mais frios?
# Foi criado um dataframe (df3) apenas com os dados que vamos trabalhar, ou seja, mes e tmedia.
df3 <- climas %>% select(cidade, mes, tmedia)
# Em seguida, vamos atualizar o dataframe aplicando agora as funções de agregação group_by e summarise, pegando o maior valor (max) da variável tmedia e agrupando por cidade e mês.
df3 <- df3 %>% group_by(cidade, mes) %>% summarise(Maximo=max(tmedia))
# Agora vamos ordenar o dataframe com a função arrange, colocando por ordem da coluna máximo (vindo da base tmedia).
df3 <- arrange(df3,desc(Maximo))
df3
## # A tibble: 24 x 3
## # Groups: cidade [2]
## cidade mes Maximo
## <chr> <dbl> <dbl>
## 1 João Pessoa 3 30.1
## 2 João Pessoa 2 30.1
## 3 João Pessoa 4 29.8
## 4 João Pessoa 12 29.6
## 5 João Pessoa 1 29.6
## 6 João Pessoa 11 29.4
## 7 João Pessoa 5 29.4
## 8 João Pessoa 10 29.2
## 9 João Pessoa 9 28.7
## 10 Campina Grande 3 28.6
## # ... with 14 more rows
# CONCLUSÃO:
# Analisando o valor da variável temperatura média, os meses mais quentes foram: Fevereiro e Março com valores empatados de 30.1 graus na cidade de João Pessoa, já na cidade de Campina Grande, os meses mais quentes foram também Fevereiro e Março, com as temperaturas de 27.97 e 28.56 respectivamente.
# Agora vamos analisar os meses mais frios, ainda com base na variável de temperatura média. Vamos encontrar inicialmente em Campina Grande com as temperaturas de 24,31 e 23,94 referente aos meses de agosto e julho respectivamente. Já na cidade de João Pessoa os meses mais frios foram julho e agosto, com valores de 27.06 e 27.52 respectivamente.
# Um gráfico de coluna foi construído para representar os valores da variável temperatura média em relação aos meses.
df3 %>% ggplot() + geom_col(aes(x=mes, y=Maximo, fill = cidade), position = "dodge") + scale_x_continuous(name="Mês",breaks=seq(1,12,1))+ scale_y_continuous(name="Temperatura Média",breaks=seq(10,30,10)) + theme(legend.position="bottom") + ggtitle("Gráfico das temperaturas máximas por mês")

Qual foi o São João mais frio de CG que está nos nossos dados?
# Foi criado um dataframe (df4) apenas com os dados que vamos trabalhar, ou seja, cidade, semana, mes e tmedia, foi aplicado ainda um filtro para pegar apenas a cidade de Campina Grande e o mês 6, que é o mês do São João.
df4 <- climas %>% filter(cidade=="Campina Grande", mes==6) %>% select(cidade, semana, mes, tmedia)
# Agora vamos classificar os dados em ordem crescente por tmedia, para pegar o menor valor, e localizar a semana que ele ocorreu.
df4 <- arrange(df4,tmedia)
# Visualizando apenas a primeira linha do dataframe (df4)
df4[1,]
## # A tibble: 1 x 4
## cidade semana mes tmedia
## <chr> <dttm> <dbl> <dbl>
## 1 Campina Grande 2008-06-29 00:00:00 6 21.3
# CONCLUSÃO: Podemos concluir que a semana de 29/06/2008 foi a semana mais fria com 21.33 graus em Campina Grande, segundo os dados.
Chuva
Quanto chove por semana em JP e CG?
# Foi criado um dataframe (df5) apenas com os dados que vamos trabalhar, ou seja, cidade, semana, mes e chuva.
df5 <- climas %>% select(cidade, semana, mes, chuva)
# Como existem cerca de 2.748 registros de leitura de chuva por semana, para a cidade de JP e CG, precisamos agrupar esses registros em um valor que possa melhor representar, sendo assim, vamos calcular o valor média de chuva por cidade.
df5 <- df5 %>% group_by(cidade) %>% summarise(MediaChuva=mean(chuva))
df5
## # A tibble: 2 x 2
## cidade MediaChuva
## <chr> <dbl>
## 1 Campina Grande 14.0
## 2 João Pessoa 32.6
# Em seguida vamos construir um gráfico para melhor representar esses valores.
df5 %>% ggplot() + geom_col(aes(x=cidade, y=MediaChuva, fill = cidade), position = "dodge") + geom_text(aes(x=cidade, y=MediaChuva, label=signif(MediaChuva, digits = 5)), position = position_stack(vjust = 0.5), size=5) + theme(legend.position="bottom") + ggtitle("Gráfico da média de Chuva por cidade")

# CONCLUSÃO:
# Diante dos dados sumarizados é possível verificar que João Pessoa apresenta uma média de chuva por semana no valor de 32.65, já em Campina Grande essa média é menor com valor de 13.99.