Taller: Módulo de Softwares para el manejo de datos

Ejercicio 1

Cargue a RStudio el conjunto de datos “pinguinos” del paquete datos. pinguinos incluye medidas de especies de pingüinos de las islas del Archipiélago de Palmer, incluye tamaño (largo de aleta, masa corporal, dimensiones de pico) y sexo de los pinguinos. Muestre la siguiente tabla donde se visualicen las 5 primeras observaciones del conjunto de datos.

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.0     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.1     ✔ tibble    3.2.0
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
library(datos)
pinguinos
## # A tibble: 344 × 8
##    especie isla      largo_pico_mm alto_pico_mm largo_alet…¹ masa_…² sexo   anio
##    <fct>   <fct>             <dbl>        <dbl>        <int>   <int> <fct> <int>
##  1 Adelia  Torgersen          39.1         18.7          181    3750 macho  2007
##  2 Adelia  Torgersen          39.5         17.4          186    3800 hemb…  2007
##  3 Adelia  Torgersen          40.3         18            195    3250 hemb…  2007
##  4 Adelia  Torgersen          NA           NA             NA      NA <NA>   2007
##  5 Adelia  Torgersen          36.7         19.3          193    3450 hemb…  2007
##  6 Adelia  Torgersen          39.3         20.6          190    3650 macho  2007
##  7 Adelia  Torgersen          38.9         17.8          181    3625 hemb…  2007
##  8 Adelia  Torgersen          39.2         19.6          195    4675 macho  2007
##  9 Adelia  Torgersen          34.1         18.1          193    3475 <NA>   2007
## 10 Adelia  Torgersen          42           20.2          190    4250 <NA>   2007
## # … with 334 more rows, and abbreviated variable names ¹​largo_aleta_mm,
## #   ²​masa_corporal_g
library(magrittr)
## 
## Attaching package: 'magrittr'
## 
## The following object is masked from 'package:purrr':
## 
##     set_names
## 
## The following object is masked from 'package:tidyr':
## 
##     extract
data_pinguinos <- pinguinos
head(data_pinguinos, 5)
## # A tibble: 5 × 8
##   especie isla      largo_pico_mm alto_pico_mm largo_aleta…¹ masa_…² sexo   anio
##   <fct>   <fct>             <dbl>        <dbl>         <int>   <int> <fct> <int>
## 1 Adelia  Torgersen          39.1         18.7           181    3750 macho  2007
## 2 Adelia  Torgersen          39.5         17.4           186    3800 hemb…  2007
## 3 Adelia  Torgersen          40.3         18             195    3250 hemb…  2007
## 4 Adelia  Torgersen          NA           NA              NA      NA <NA>   2007
## 5 Adelia  Torgersen          36.7         19.3           193    3450 hemb…  2007
## # … with abbreviated variable names ¹​largo_aleta_mm, ²​masa_corporal_g

Ejercicio 2

Revise la estructura del conjunto de datos pinguinos

str(data_pinguinos)
## tibble [344 × 8] (S3: tbl_df/tbl/data.frame)
##  $ especie        : Factor w/ 3 levels "Adelia","Barbijo",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ isla           : Factor w/ 3 levels "Biscoe","Dream",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ largo_pico_mm  : num [1:344] 39.1 39.5 40.3 NA 36.7 39.3 38.9 39.2 34.1 42 ...
##  $ alto_pico_mm   : num [1:344] 18.7 17.4 18 NA 19.3 20.6 17.8 19.6 18.1 20.2 ...
##  $ largo_aleta_mm : int [1:344] 181 186 195 NA 193 190 181 195 193 190 ...
##  $ masa_corporal_g: int [1:344] 3750 3800 3250 NA 3450 3650 3625 4675 3475 4250 ...
##  $ sexo           : Factor w/ 2 levels "hembra","macho": 2 1 1 NA 1 2 1 2 NA NA ...
##  $ anio           : int [1:344] 2007 2007 2007 2007 2007 2007 2007 2007 2007 2007 ...

Ejercicio 3.

Identifique las especies de pinguinos, las islas y los años de la información que contiene “pinguinos”.

unique(data_pinguinos$especie)
## [1] Adelia  Papúa   Barbijo
## Levels: Adelia Barbijo Papúa
unique(data_pinguinos$isla)
## [1] Torgersen Biscoe    Dream    
## Levels: Biscoe Dream Torgersen
unique(data_pinguinos$anio)
## [1] 2007 2008 2009

Ejercicio 4.

Hoy aprenderás un nuevo paquete para generar un resumen estadístico de tus datos. Instala la librería modelsummary) y con la función datasummary_skim() genera el siguiente resumen de datos y responde a las siguientes preguntas:

library(modelsummary)
datasummary_skim(data_pinguinos)
Unique (#) Missing (%) Mean SD Min Median Max
largo_pico_mm 165 1 43.9 5.5 32.1 44.5 59.6
alto_pico_mm 81 1 17.2 2.0 13.1 17.3 21.5
largo_aleta_mm 56 1 200.9 14.1 172.0 197.0 231.0
masa_corporal_g 95 1 4201.8 802.0 2700.0 4050.0 6300.0
anio 3 0 2008.0 0.8 2007.0 2008.0 2009.0

¿Cuánto miden en promedio el largo y alto de los picos de los pinguinos de la muestra?

Promedio de largo es = 43.9 mm

¿Cuál es el peso corporal máximo de los pinguinos de la muestra?

Promedio de alto es = 17.2 mm

Ejercicio 5.

Recree el código en R para generar la siguiente tabla que muestra el mínimo, el máximo y la media aritmética de las medidas del largo de las aletas de los pinguinos, clasificada por especie.

data_pinguinos %>%
    group_by(especie) %>%
    
    summarise("minimo" = min(largo_aleta_mm, na.rm = TRUE),
              "maximo" = max(largo_aleta_mm, na.rm = TRUE),
              "media" = mean(largo_aleta_mm, na.rm = TRUE))
## # A tibble: 3 × 4
##   especie minimo maximo media
##   <fct>    <int>  <int> <dbl>
## 1 Adelia     172    210  190.
## 2 Barbijo    178    212  196.
## 3 Papúa      203    231  217.

Ejercicio 6.

Con el paquete modelsummary puede generar tablas con más información que la anterior y con una mejor estructura. Utilice la función datasummary() del paquete modelsummary y recree el código para generar la siguiente tabla. No se olvide consultar la ayuda para conocer los argumentos y parámetros que contiene la función.

datasummary(largo_aleta_mm + largo_pico_mm + alto_pico_mm + masa_corporal_g ~ especie * (Mean + SD),
            data = data_pinguinos)
Adelia
Barbijo
Papúa
Mean SD Mean SD Mean SD
largo_aleta_mm 189.95 6.54 195.82 7.13 217.19 6.48
largo_pico_mm 38.79 2.66 48.83 3.34 47.50 3.08
alto_pico_mm 18.35 1.22 18.42 1.14 14.98 0.98
masa_corporal_g 3700.66 458.57 3733.09 384.34 5076.02 504.12

Visualización de datos

Ejercicio 1

Recree el código R para generar la siguiente gráfica que muestra la distribución de los datos sobre la longitud de las aletas de los pinguinos de la muestra clasificado por especie y por isla, puede modificar la estética a su gusto.

data_pinguinos %>%
  ggplot(aes(x=largo_aleta_mm, fill = especie)) +
  ggtitle("Gráfico 1: Distribucion de la longitud de las aletas de los pinguinos") + 
  facet_grid(rows = vars(isla), margins = FALSE) +
  geom_density(alpha = 0.4) +
  labs(subtitle = "(diferenciando por especie e isla)",
     caption = "Datos provenientes de pinguinos dataset",
     x = "Longitud de Aleta",
     y = " ",
     color = "Especie de pinguino")

Ejercicio 2

Si usted desea visualizar la relación que existe entre el largo del pico y el largo de la aleta de los pinguinos por especie. ¿Qué gráficos utilizaría?. Genere el gráfico que usted considere pertinente para cumplir con su objetivo, agregue el tema, colores y estética necesaria.

data_pinguinos %>%
  ggplot(aes(largo_aleta_mm, largo_pico_mm, color = especie)) + 
  geom_point() +
  labs(title = "Gráfico 2: Largo del Pico frente a Largo de aleta",
       subtitle = "(diferenciando por especie de pinguinos)",
       caption = "Datos provenientes de pinguinos dataset",
       x = "Largo de Aleta",
       y = "Largo de Pico",
       color = "Especie de pinguino")