knitr::opts_chunk$set(echo = FALSE)

library(learnr)
library(gradethis)
library(ggplot2)
library(dplyr)
library(tidyr)
library(mosaicData)
library(visdat)
library(plotly)

weather <- Weather %>%
  mutate(month = as.factor(month))
knitr::include_graphics(
  "https://storage.googleapis.com/datos_cursos/ixpantia_introR/ixpantia_logo.png"
  )  

Datos: weather

En esta tarea vamos a estar utilizando el set de datos weather del paquete mosaicData. Es un conjunto de datos que contiene información sobre el clima en 5 ciudades del mundo para los años: 2016 y 2017. Contiene 3655 observaciones y 25 variables.

glimpse(weather)

Descripción de las variables

| Variable | Descripción | | :----------: | :---------------------: | | city | Nombre de la ciudad | | date | Fecha | | year | Año | | month | Mes | | day | Día | | high_temp | Temperatura más alta del dia en F | | avg_temp | Temperatura promedio del dia en F | | low_temp | Temperatura más baja del dia en F | | high_dewpt | Punto de rocío más alto del dia en F | | avg_dewpt | Punto de rocío promedio del dia en F | | low_dewpt | Punto de rocío más bajo del dia en F | | high_humidity | Humedad relativa más alta del dia | | avg_humidity | Humedad relativa promedio del dia | | low_humidity | Humedad relativa más baja del dia | | high_hg | Presión del nivel del mar más alta en pulgadas de mercurio | | avg_hg | Presión del nivel del mar promedio en pulgadas de mercurio | | low_hg | Presión del nivel del mar más baja en pulgadas de mercurio | | high_vis | Visibilidad más alta del día en millas | | avg_vis | Visibilidad promedio del día en millas | | low_vis | Visibilidad más baja del día en millas | | high_wind | Velocidad del viento más alta en el día en mph | | avg_wind | Velocidad del viento promedio en el día en mph | | low_wind | Velocidad del viento más baja en el día en mph | | precip | Precipitación presentada en el día | | events | Evento meteorológico que ocurrió en el día |

Ejercicios

1. Visualice los NAs

Es importante conocer dónde y cuántos valores faltantes tenemos en un set de datos. Visualice los NAs de la base de datos weather.


vis_dat(weather)

2. Cree un gráfico con una linea de regresión suavizada para la temperatura promedio a través de los años

En weather tenemos una variable llamada avg_temp que contiene la temperatura promedio presentada cada día y además el día se ve reflejado en la variable date. Cree un gráfico que muestre una línea de regresión suavizada para la temperatura promedio a través del tiempo contemplado. Excluya el error estándar.

ggplot(weather)
ggplot(weather, aes(x = date, y = avg_temp)) +
  geom_smooth(se = FALSE)

3. Cree un gráfico de barras donde se muestre la velocidad promedio del viento por día para cada ciudad

Al variable avg_wind en weather muestra le velocidad promedio del viento para cada fecha (date), además, tenemos en city el nombre de la ciudad donde se recolectó cada dato. Utilizando estas tres variables cree un gráfico que muestra la velocidad promedio del viento a través del tiempo, en cada ciudad. Las etiquetas de la fecha deben mostrar solo el mes y el año y para que se vea más ordenado, "corte" la fecha cada 5 meses.

ggplot(weather)
ggplot(data = weather, aes(x = date, y = avg_wind,
                                     group = city,
                                     fill = city)) +
  geom_bar(stat = "identity") +
  scale_fill_viridis_d() +
  scale_x_date(date_labels = "%b-%Y", date_breaks = "5 months") +
  theme_minimal(base_size = 10)

4. Cree un gráfico de barras apiladas que muestre la humedad promedio en cada mes según los eventos meteotológicos que se presentaron

En weather tenemos una variable llamada avg_humidity con el promedio de humedad que se presentó cada día. Además, la variable month con solamente el mes de la fecha registrada y events con el o los eventos meteorológicos que se presentaron cada día. Ustede debe crear un gráfico que muestre la relación entre los eventos meteorológicos y la humedad promedio en cada mes. Coloque las etiquetas correspondientes a cada eje, título, leyenda y subtítulo. Además, utilice un "tema" (theme_) y controle el tamaño de las letras.

ggplot(weather)
ggplot(weather, aes(x = month, y = avg_humidity,
                                   group = events,
                                   fill = events)) +
  geom_bar(stat = "summary") +
  scale_fill_viridis_d() +
  xlab("Mes") + ylab("Humedad (g/m3)") +
  labs(title = "Humedad promedio" ,
       subtitle = "por mes y evento", 
       fill = "Evento") +
  theme_bw(base_size = 14) +
  theme(axis.text.x = element_text(angle = 45))

5. Muestre la densidad de la variable avg_hg con un histograma y la función de densidad y muestre la media de esta distribución con una línea

Grafique la distribución de densidad de la variable avg_hg (presión del nivel del mar promedio en pulgadas de mercurio) con la densidad como tal y un histograma. Debe asegurarse de que el histograma tenga una transparencia suficiente para que el histograma se logre diferenciar. Además, agregue una línea que muestre la media general de la vriable, haga que esta línea esté compuesta de puntos, sea de tamaño 2 y azul.

ggplot(weather)
ggplot(weather, aes(x = avg_hg)) +
  geom_histogram(aes(y = ..density..), colour = "black", fill = "white") +
  geom_density(alpha = .7, fill = "lightblue") +
  geom_vline(aes(xintercept = mean(avg_hg)),
             color = "blue", linetype = "dotted", size = 2)

6. Cree un gráfico interactivo donde se muestre el punto de rocío promedio a lo largo del tiempo para cada ciudad

Utilizando ggplotly, convierta un gráfico normal a un gráfico interactivo que muestre el comportamiento del punto de rocío promedio (avg_dewpt) a través del tiempo (date) para cada ciudad (city). En el eje x, para la fecha, utilice el formato: año, día, mes y "corte" la fecha cada dos meses, además, haga que las etiquetas de este eje tengan un ángulo de 90. Recuerde poner las etiquetas correspondientes.

interactivo <- ggplot(weather)
interactivo <- ggplot(weather,
                      aes(x = date,
                          y = avg_dewpt,
                          color = city)) +
  geom_line() +
  scale_color_viridis_d() +
  scale_x_date(date_labels = "%Y-%d-%m", date_breaks = "2 month") +
  xlab("Fecha") +
  ylab("Punto de rocío (grados F)") +
  labs(title = "Punto de rocío promedio", color = "Ciudad") +
  theme(axis.text.x = element_text(angle = 45))

ggplotly(interactivo)


ixpantia/ixpantia.introR documentation built on Jan. 25, 2024, 2:32 p.m.