climas = read_csv(here::here("C:/Users/amand/OneDrive/Documentos/fpcc2/atividade-1/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…
Calcular a temperatura da semana anterior em cada linha
climas = climas %>%
mutate(temp_anterior = lag(tmedia, n = 1))
climas <- na.omit(climas)
# Fazendo a média da temperatura média para cada cidade
media_temp <- aggregate(climas$tmedia, by = list(climas$cidade), FUN = mean)
# Ordenando as cidades pela temperatura média média em ordem decrescente
media_temp <- media_temp[order(-media_temp$x),]
# Imprimindo a lista de cidades em ordem decrescente de temperatura média
print(media_temp)
## Group.1 x
## 2 João Pessoa 27.65318
## 1 Campina Grande 24.68959
A cidade mais quente é joão pessoa.
media_temp_jan_fev <- aggregate(tmedia ~ cidade, data = subset(climas, mes %in% c(1, 2)), FUN = mean)
# Ordenando as cidades pela temperatura média média em ordem decrescente
media_temp_jan_fev <- media_temp_jan_fev[order(-media_temp_jan_fev$tmedia),]
# Imprimindo a lista de cidades em ordem decrescente de temperatura média em janeiro e fevereiro
print(media_temp_jan_fev)
## cidade tmedia
## 2 João Pessoa 28.65027
## 1 Campina Grande 25.85547
Mesmo considerando apenas o pico de verão podemos ver que se mantem inalterado e joao pessoa ainda é mais quente.
# Agrupa os dados por cidade, mês e ano e calcula a média das temperaturas
dados_media_temp <- climas %>%
group_by(cidade, mes, ano) %>%
summarize(temp_media = mean(tmedia, na.rm = TRUE))
## `summarise()` has grouped output by 'cidade', 'mes'. You can override using the
## `.groups` argument.
# Calcula a média das temperaturas por cidade e mês
dados_media_temp_por_mes <- dados_media_temp %>%
group_by(cidade, mes) %>%
summarize(temp_media = mean(temp_media, na.rm = TRUE))
## `summarise()` has grouped output by 'cidade'. You can override using the
## `.groups` argument.
# Ordena os meses por temperatura e seleciona os mais quentes e mais frios
dados_media_temp_por_mes %>%
arrange(cidade, -temp_media) %>%
group_by(cidade) %>%
summarize(mais_quentes = paste(mes[1:3], collapse = ", "),
mais_frios = paste(mes[10:12], collapse = ", "))
## # A tibble: 2 × 3
## cidade mais_quentes mais_frios
## <chr> <chr> <chr>
## 1 Campina Grande 12, 2, 3 6, 8, 7
## 2 João Pessoa 3, 2, 1 6, 8, 7
Ao analisarmos mes a mes e pegarmos os 3 meses mais frios e os 3 mais quentes vemos que ambas as cidades possuem seu periodo de frio iniciando no são joao e se extende ate agosto. Quando observamos os meses mais quentes de cada cidade vemos que joao pessoa tem um calor em dezembro, porem com uma leve diminuida e uma nova crescente em fevereiro ate março. Enquanto campina grande se inicia em janeiro e vai até março
climas %>%
filter(mes == 6) %>%
ggplot(aes(x=ano, y=tmedia, color=cidade)) +
geom_point() +
labs(title = "Temperatura Media no mes de junho durante os anos")
climas %>%
filter(mes > 5, mes < 8) %>%
ggplot(mapping = aes(y = cidade, x = tmedia)) +
# geom_point(alpha = 0.3) +
geom_jitter(height = .1, alpha = .6, color = "blue") +
labs(
title = "Temperatura Media Semanal nos meses de junho e julho",
y = "",
x = "Temperatura Media Semanal (C)"
)
Analisando o periodo de são joão vemos que além de ser o periodo mais frio em ambas as cidades mantem uma media abaixo de 30°
# Calculando a soma da chuva para cada cidade e semana
chuva_por_semana <- aggregate(chuva ~ cidade + semana, data = climas, FUN = sum)
# Plotando um histograma do volume de chuvas para cada cidade
library(ggplot2)
ggplot(climas, aes(x = chuva, fill = cidade)) +
geom_histogram(alpha = 0.5, position = "identity", bins = 30) +
xlab("Volume de chuva (mm)") +
ylab("Frequencia") +
ggtitle("Distribuicao do volume de chuvas em Joao Pessoa e Campina Grande")
Analisando a frequencia das chuvas, podemos observar que campina grande possui uma frequencia maior de chuvas, em relação a joao pessoa, apenas em seus volumes mais baixo.
# Calcula a correlação entre a temperatura de uma semana e a temperatura da semana anterior para cada cidade
correlacao_jp <- cor(climas %>% filter(cidade == "João Pessoa") %>% select(tmedia, temp_anterior), use = "pairwise.complete.obs")
correlacao_cg <- cor(climas %>% filter(cidade == "Campina Grande") %>% select(tmedia, temp_anterior), use = "pairwise.complete.obs")
# Imprime a correlação para cada cidade
cat("Correlação entre a temperatura de uma semana e a temperatura da semana anterior em Joao Pessoa:", correlacao_jp, "\n")
## Correlação entre a temperatura de uma semana e a temperatura da semana anterior em Joao Pessoa: 1 0.859407 0.859407 1
cat("Correlação entre a temperatura de uma semana e a temperatura da semana anterior em Campina Grande:", correlacao_cg, "\n")
## Correlação entre a temperatura de uma semana e a temperatura da semana anterior em Campina Grande: 1 0.880168 0.880168 1
Ao analisarmos a correlação podemos ver que existe uma paridade de mais de 80% em ambas a cidades, mostrande sim que o clima de uma semana pode influenciar na proxima.
# Filtra os dados para as semanas em que houve registro de chuva
dados_jp_cg_chuva <- climas %>% filter(chuva > 0)
# Cria um gráfico de dispersão da temperatura e da chuva para cada cidade
ggplot(data = dados_jp_cg_chuva, aes(x = tmedia, y = chuva)) +
geom_point() +
facet_grid(rows = vars(cidade)) +
xlab("Temperatura (°C)") +
ylab("Chuva (mm)") +
ggtitle("Relação entre temperatura e chuva nas semanas com registro de chuva por cidade")
Com o grafico gerado, podemos analisar que em joao pessoa conforme a frequencia de chuva aumenta a tendencia da temperatura é dar uma leve diminuida,na qual analisando as pequenas chuvas, elas não alteram a temperatura.por sua vez, em campina grande seu clima por ser mais frio que joao pessoa, analise do grafico não demonstra relação com a frequência de chuvas. porém para uma conclusão mais exata a criação de uma correlação entre elas podem ser feitas.
library(dplyr)
climas %>%
filter(chuva > 0) %>%
group_by(cidade) %>%
summarize(correlacao = cor(tmedia, chuva))
## # A tibble: 2 × 2
## cidade correlacao
## <chr> <dbl>
## 1 Campina Grande -0.335
## 2 João Pessoa -0.424
Analisando a correção, podemos ver que em ambas a correlação entre chuva e clima são baixas, o que mostra que um nçao interfere no outro.