R viene con funciones básicas instaladas (“base R”), pero la
verdadera potencia reside en los paquetes externos. Para usarlos,
seguimos dos pasos: instalarlos (una sola vez en tu
computadora, mediante la función
install.packages("nombre_del_paquete")) y
cargarlos (cada vez que abras un nuevo script, mediante la
función library("nombre_del_paquete")).
#Instalar paquete por única vez. Estos son algunos que usaremos esta y la siguientes clases
install.packages("tidyverse") #El nombre del paquete debe estar entre comillas
install.packages("readxl")
install.packages("dplyr")
#Cargar paquete cada vez que abras una sesión nueva de RStudio.
library(readxl) #En este caso el nombre del paquete funciona con y sin comillas
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.2.0 ✔ readr 2.2.0
## ✔ forcats 1.0.1 ✔ stringr 1.6.0
## ✔ ggplot2 4.0.2 ✔ tibble 3.3.1
## ✔ lubridate 1.9.5 ✔ tidyr 1.3.2
## ✔ purrr 1.2.1
## ── 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(dplyr)
Importamos nuestros datos mediante el botón import o
bien mediante la función read_excel() del paquete readxl.
En este caso trabajaremos con la base de datos
Tabla_camelida.xlsx, la cual puedes encontrar el
repositorio del curso o descargar directamente haciendo click aquí.
camelidos <- read_excel("~/Desktop/work/0_Cuantitativa_2026/ANT305Q-2026/Clases/Clase2/Tabla camelida.xlsx")
camelidos
## # A tibble: 33 × 3
## Taxon Largo Ancho
## <chr> <dbl> <dbl>
## 1 LLAMA 80.3 35.4
## 2 LLAMA 71.6 21.2
## 3 LLAMA 70.9 22.0
## 4 LLAMA 70.6 22.3
## 5 LLAMA 69.1 22.7
## 6 LLAMA 68.7 20.8
## 7 LLAMA 67.8 20
## 8 LLAMA 66.6 21
## 9 LLAMA 65.9 20.3
## 10 LLAMA 65.8 21.2
## # ℹ 23 more rows
A menudo necesitamos aislar datos específicos. Para esto, usaremos la
función filter() junto al operador pipe
(%>%) disponibles en el paquete tidyverse,
que funciona como un “entonces”: “toma los datos, y luego fíltralos”. En
este caso haremos el ejercicio de filtrar solo los datos provenientes
del Taxón llamas. Tanto las variables como los datos a seleccionar deben
ser escritos
tal cual como están en la base de datos original.
# Creamos un nuevo dataframe solo con los datos de LLAMA
llama <- camelidos %>% filter(Taxon == "LLAMA")
# Verificamos el resultado
llama
## # A tibble: 20 × 3
## Taxon Largo Ancho
## <chr> <dbl> <dbl>
## 1 LLAMA 80.3 35.4
## 2 LLAMA 71.6 21.2
## 3 LLAMA 70.9 22.0
## 4 LLAMA 70.6 22.3
## 5 LLAMA 69.1 22.7
## 6 LLAMA 68.7 20.8
## 7 LLAMA 67.8 20
## 8 LLAMA 66.6 21
## 9 LLAMA 65.9 20.3
## 10 LLAMA 65.8 21.2
## 11 LLAMA 65.1 21.6
## 12 LLAMA 64.6 19.3
## 13 LLAMA 64.2 20.0
## 14 LLAMA 61.5 18.7
## 15 LLAMA 61.1 20.3
## 16 LLAMA 60.8 18.8
## 17 LLAMA 60.6 19.9
## 18 LLAMA 60.5 18.9
## 19 LLAMA 56.9 18.8
## 20 LLAMA 40.2 15.2
Para conocer las medidas de tendencia central y dispersión de nuestra
muestra, R nos ofrece múltiples funciones. Podemos usar
summary() para obtener un resumen general rápido de una
variable específica.
Para indicarle a R exactamente qué columna queremos analizar dentro
de nuestro dataframe, usamos el signo $.
# Resumen estadístico general (Mínimo, Cuartiles, Mediana, Media, Máximo)
summary(llama$Ancho)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 15.20 19.20 20.28 20.92 21.31 35.40
Si necesitamos extraer un valor específico para reportarlo o usarlo en otra fórmula, podemos calcular cada parámetro de forma independiente usando sus funciones específicas:
# Medidas de Tendencia Central
mean(llama$Ancho) # Media o Promedio
## [1] 20.9195
median(llama$Ancho) # Mediana
## [1] 20.28
# Medidas de Posición y Dispersión
quantile(llama$Ancho) # Cuartiles
## 0% 25% 50% 75% 100%
## 15.200 19.195 20.280 21.310 35.400
IQR(llama$Ancho) # Rango Intercuartil
## [1] 2.115
sd(llama$Ancho) # Desviación Estándar (Standard Deviation)
## [1] 3.792384
var(llama$Ancho) # Varianza
## [1] 14.38217
Para explorar visualmente cómo se distribuyen nuestros datos,
crearemos un histograma. Para esto usaremos ggplot2, un
paquete especializado en gráficos que ya viene incluido y cargado dentro
de tidyverse.
Usaremos la función ggplot(). Primero definimos nuestros
datos (data = llama), luego en aes()
(aesthetics) definimos qué variable irá en el eje X (en este caso, el
Ancho). Finalmente, le indicamos el tipo de gráfico con
geom_histogram(), donde podemos personalizar el grosor de
las barras (binwidth), el color del borde y el relleno.
# Histograma para el ancho de falange solo de las llamas
ggplot(data = llama, aes(x = Ancho)) +
geom_histogram(binwidth = 1, color = "black", fill = "white")
Si queremos ver todos los datos en un mismo gráfico para compararlos, ya no usamos el vector filtrado, sino nuestra base de datos original (camelidos).
Para que R diferencie ambos grupos en el gráfico, agregamos el
argumento fill = Taxon dentro de la función
aes(). Esto le indica al programa que rellene las barras
con colores distintos según la especie.
# Histograma comparativo para toda la base de datos
ggplot(data = camelidos, aes(x = Ancho, fill = Taxon)) +
geom_histogram(binwidth = 1, color = "black")
Utilizando la base de datos Tabla_camelida.xlsx, crea un
nuevo script y realiza los siguientes ejercicios en R:
Largo utilizando un histograma (sin
filtrar).Largo sólo para el taxón “GUANACO”
utilizando un histograma.Largo para el taxón “GUANACO”.Largo en “GUANACO”.Largo en
“GUANACO”.Largo en
“GUANACO”.Ancho utilizando un histograma (sin
filtrar).Ancho sólo para el taxón “GUANACO”
utilizando un histograma.Ancho para el taxón “GUANACO”.Ancho en “GUANACO”.Ancho en
“GUANACO”.Ancho en
“GUANACO”.