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.
## Se ocupó al inicio estas líneas de código para descargar el dataset pinguinos en la carpeta data
#library(openxlsx)
#library(datos)
#tabla1<-pinguinos
#View(tabla1)
#write.xlsx(tabla1,"data/pinguinos.xlsx")
library(knitr)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.0 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(readxl)
## cargamos el conjunto de datos pinguinos
pinguinos <- read_excel("data/pinguinos.xlsx", sheet = "DATA", skip = 0)
profesores <- read_excel("data/EXCELprofesores.xlsx")
## Visualización de los primeras 5 registros
kable(
head(pinguinos, n=5),
caption = "Tabla 1. Conjunto de datos Pinguinos"
)
| especie | isla | largo_pico_mm | alto_pico_mm | largo_aleta_mm | masa_corporal_g | sexo | anio |
|---|---|---|---|---|---|---|---|
| Adelia | Torgersen | 39.1 | 18.7 | 181 | 3750 | macho | 2007 |
| Adelia | Torgersen | 39.5 | 17.4 | 186 | 3800 | hembra | 2007 |
| Adelia | Torgersen | 40.3 | 18.0 | 195 | 3250 | hembra | 2007 |
| Adelia | Torgersen | 36.7 | 19.3 | 193 | 3450 | hembra | 2007 |
| Adelia | Torgersen | 39.3 | 20.6 | 190 | 3650 | macho | 2007 |
Revise la estructura del conjunto de datos pinguinos.
## Verifica la estructura del data set pinguinos
str(pinguinos)
## tibble [342 × 8] (S3: tbl_df/tbl/data.frame)
## $ especie : chr [1:342] "Adelia" "Adelia" "Adelia" "Adelia" ...
## $ isla : chr [1:342] "Torgersen" "Torgersen" "Torgersen" "Torgersen" ...
## $ largo_pico_mm : num [1:342] 39.1 39.5 40.3 36.7 39.3 38.9 39.2 34.1 42 37.8 ...
## $ alto_pico_mm : num [1:342] 18.7 17.4 18 19.3 20.6 17.8 19.6 18.1 20.2 17.1 ...
## $ largo_aleta_mm : num [1:342] 181 186 195 193 190 181 195 193 190 186 ...
## $ masa_corporal_g: num [1:342] 3750 3800 3250 3450 3650 ...
## $ sexo : chr [1:342] "macho" "hembra" "hembra" "hembra" ...
## $ anio : num [1:342] 2007 2007 2007 2007 2007 ...
Identifique las especies de pinguinos, las islas y los años de la información que contiene “pinguinos”.
##Muestra solo las especies de la tabla pinguinos
unique(pinguinos$especie)
## [1] "Adelia" "Papúa" "Barbijo"
##Muestra solo el campo isla de la tabla pinguinos
unique(pinguinos$isla)
## [1] "Torgersen" "Biscoe" "Dream"
##Muestra solo el campo año de la tabla pinguinos
unique(pinguinos$anio)
## [1] 2007 2008 2009
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)
## `modelsummary` 2.0.0 now uses `tinytable` as its default table-drawing
## backend. Learn more at: https://vincentarelbundock.github.io/tinytable/
##
## Revert to `kableExtra` for one session:
##
## options(modelsummary_factory_default = 'kableExtra')
##
## Change the default backend persistently:
##
## config_modelsummary(factory_default = 'gt')
##
## Silence this message forever:
##
## config_modelsummary(startup_message = FALSE)
## se consultó en internet como utilizar la función datasummry_skim, unicamente con el tipo numérico
datasummary_skim(pinguinos, type = "numeric")
| Unique | Missing Pct. | Mean | SD | Min | Median | Max | Histogram | |
|---|---|---|---|---|---|---|---|---|
| largo_pico_mm | 164 | 0 | 43.9 | 5.5 | 32.1 | 44.5 | 59.6 | |
| alto_pico_mm | 80 | 0 | 17.2 | 2.0 | 13.1 | 17.3 | 21.5 | |
| largo_aleta_mm | 55 | 0 | 200.9 | 14.1 | 172.0 | 197.0 | 231.0 | |
| masa_corporal_g | 94 | 0 | 4201.8 | 802.0 | 2700.0 | 4050.0 | 6300.0 | |
| anio | 3 | 0 | 2008.0 | 0.8 | 2007.0 | 2008.0 | 2009.0 |
##esta no se ocupó pero se coloca, para distinguir el tipo categórico
#datasummary_skim(pinguinos, type = "categorical")
¿Cuánto miden en promedio el largo y alto de los picos de los pinguinos de la muestra? Promedio de largo de los picos de los pinguinos es = 43.9 mm Promedio de alto de los picos de los pinguinos es = 17.2 mm
¿Cuál es el peso corporal máximo de los pinguinos de la muestra? La masa corporal máxima de los pinguinos es = 6300
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
## Se crea una tabla agrupada por especie, y en la que mostramos el mínimo, máximo y la media del campo (largo_aleta_mm)
kable(
pinguinos %>%
group_by(especie) %>%
summarise(
minimo = min(largo_aleta_mm),
maximo = max(largo_aleta_mm),
media = mean(largo_aleta_mm)
) %>%
view()
)
| especie | minimo | maximo | media |
|---|---|---|---|
| Adelia | 172 | 210 | 189.9536 |
| Barbijo | 178 | 212 | 195.8235 |
| Papúa | 203 | 231 | 217.1870 |
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.
library(modelsummary)
# se consultó como utilizar la función datasummary en internet
datasummary(largo_aleta_mm + largo_pico_mm + alto_pico_mm + masa_corporal_g ~ especie * (Mean + SD),
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 |
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.
##Establecemos la distribución de los datos sobre la longitud de las aletas de los pinguinos, clasificado por especie y por isla
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 del dataset pinguinos",
x = "Longitud de Aleta",
y = " ",
color = "Especie de pinguino")
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?.
## Se establece la relación que existe entre el largo del pico y el largo de la aleta de los pinguinos por especie
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 del dataset pinguinos",
x = "Largo de Aleta",
y = "Largo de Pico",
color = "Especie de pinguino")