Code
installed.packages()En R, podemos agregar funciones y herramientas adicionales mediante paqueterías (packages), también llamadas librerías.
Una paquetería es un conjunto de funciones, datos y documentación creado por alguien más, o incluso por ti.
Actualmente, hay más de 10,000 paqueterías disponibles en CRAN (Comprehensive R Archive Network).
Las paqueterías en R permiten ampliar las funciones básicas del programa. Por ejemplo:
Crear gráficos más avanzados (ggplot2).
Manipular y limpiar datos fácilmente (dplyr, tidyr).
Realizar análisis estadísticos complejos (lme4, caret).
Trabajar con fechas, textos o datos especiales (lubridate, stringr).
En otras palabras, las paqueterías te dan herramientas listas para usar que te ahorran tiempo y esfuerzo, sin tener que escribir todo desde cero.
Si quieres explorar más paqueterías de R o buscar herramientas específicas, existen varios sitios confiables donde puedes consultar. Algunos de ellos son:
El repositorio oficial CRAN (Comprehensive R Archive Network) contiene todas las paqueterías revisados y se puede consultar en https://cran.r-project.org/web/packages/.
Para explorar y administrar paqueterías de manera más cómoda, también puedes usar el RStudio Package Manager en https://packagemanager.rstudio.com/.
Si trabajas con datos biológicos o genómicos, Bioconductor ofrece muchas paqueterías especializadas en este tipo de análisis https://www.bioconductor.org/packages/.
Además, algunos desarrolladores publican paqueterías en GitHub, desde donde se pueden instalar directamente usando devtools::install_github("usuario/paquete").
Ahora veamos cómo utilizarlas en R con loos siguientes códigos:
installed.packages() [1] "base64enc" "bookdown" "bslib" "cachem" "cli"
[6] "..." "survival" "tcltk" "tools" "translations"
[11] "utils"
Para instalar una nueva paquetería se utiliza la función install.packages("nombre_de_la_paqueteria")
Reemplaza "nombre_de_la_paqueteria" por el nombre real del la paquetería que quieras instalar.
Ejemplo:
install.packages("ggplot2") # una libreria muy famosa para crear graficosSi queremos actualizar una paquetería, lo podemos realizar con el siguiente código.
update.packages("ggplot2")Si no específicas, por defecto R, revisa todas las paqueterías instaladas. Dependiendo de la versión de R y de tu configuración, puede actualizarlas todas.
remove.packages("ggplot2")library(ggplot2)También existe otra manera de cargar las paqueterías. Usando la pestaña de Packages en la ventana inferior derecha de Rstudio puedes ver todos las paqueterías instaladas.
- ✅ Casilla marcada → el paquete está **cargado y listo para usar**
- ⬜ Casilla vacía → el paquete **no está cargado**
Una vez que sabemos cómo trabajar con paqueterías en R, podemos comenzar a manipular datos de forma más eficiente. Para ello, primero veremos cómo funcionan los data frames, qué podemos hacer con ellos y cómo importarlos desde archivos externos.
En R, un data frame es una de las estructuras más utilizadas para trabajar con datos. Puede pensarse como una tabla, donde cada columna representa una variable y cada fila corresponde a una observación.
En esta sección trabajaremos con una base de datos inspirada en el universo de Harry Potter (personajes, casas, hechizos, etc.), que nos servirá para practicar las operaciones básicas.
Antes de manipular datos, es importante aprender a importarlos desde archivos externos y exportarlos cuando queramos guardar resultados.
read.csv() – Importa archivos CSV.
read.table() – Importa archivos en formatos de tabla más generales.
write.csv() – Exporta un data frame a un archivo CSV.
Ejemplo básico:
hp_data <- read.csv("hp_data/Characters.csv", sep = ";")Una vez que tienes un data frame (ya sea creado a mano o importado), es importante aprender a explorarlo para entender su estructura y contenido.
A continuación se presentan las funciones más útiles para esto:
Muestra las primeras 6 filas del data frame.
head(hp_data)| Id | Name | Gender | Job | House | Wand | Patronus | Species | Blood.status | Hair.colour | Eye.colour | Loyalty | Skills | Birth | Death |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Harry James Potter | Male | Student | Gryffindor | 11" Holly phoenix feather | Stag | Human | Half-blood | Black | Bright green | Albus Dumbledore | Dumbledore's Army | Order of the Phoenix | Hogwarts School of Witchcraft and Wizardry | Parseltongue| Defence Against the Dark Arts | Seeker | 31 July 1980 | |
| 2 | Ronald Bilius Weasley | Male | Student | Gryffindor | 12" Ash unicorn tail hair | Jack Russell terrier | Human | Pure-blood | Red | Blue | Dumbledore's Army | Order of the Phoenix | Hogwarts School of Witchcraft and Wizardry | Wizard chess | Quidditch goalkeeping | 1 March 1980 | |
| 3 | Hermione Jean Granger | Female | Student | Gryffindor | 10¾" vine wood dragon heartstring | Otter | Human | Muggle-born | Brown | Brown | Dumbledore's Army | Order of the Phoenix | Hogwarts School of Witchcraft and Wizardry | Almost everything | 19 September, 1979 | |
| 4 | Albus Percival Wulfric Brian Dumbledore | Male | Headmaster | Gryffindor | 15" Elder Thestral tail hair core | Phoenix | Human | Half-blood | Silver| formerly auburn | Blue | Dumbledore's Army | Order of the Phoenix | Hogwarts School of Witchcraft and Wizardry | Considered by many to be one of the most powerful wizards of his time | Late August 1881 | 30 June, 1997 |
| 5 | Rubeus Hagrid | Male | Keeper of Keys and Grounds | Professor of Care of Magical Creatures | Gryffindor | 16" Oak unknown core | None | Half-Human/Half-Giant | Part-Human (Half-giant) | Black | Black | Albus Dumbledore | Order of the Phoenix | Hogwarts School of Witchcraft and Wizardry | Resistant to stunning spells| above average strength | crossbowmanship | 6 December 1928 | |
| 6 | Neville Longbottom | Male | Student | Gryffindor | 13" Cherry unicorn hair | Non-corporeal | Human | Pure-blood | Blond | Dumbledore's Army | Order of the Phoenix | Hogwarts School of Witchcraft and Wizardry | Herbology | 30 July, 1980 |
Puedes cambiar el número de filas:
head(hp_data, 3)| Id | Name | Gender | Job | House | Wand | Patronus | Species | Blood.status | Hair.colour | Eye.colour | Loyalty | Skills | Birth | Death |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Harry James Potter | Male | Student | Gryffindor | 11" Holly phoenix feather | Stag | Human | Half-blood | Black | Bright green | Albus Dumbledore | Dumbledore's Army | Order of the Phoenix | Hogwarts School of Witchcraft and Wizardry | Parseltongue| Defence Against the Dark Arts | Seeker | 31 July 1980 | |
| 2 | Ronald Bilius Weasley | Male | Student | Gryffindor | 12" Ash unicorn tail hair | Jack Russell terrier | Human | Pure-blood | Red | Blue | Dumbledore's Army | Order of the Phoenix | Hogwarts School of Witchcraft and Wizardry | Wizard chess | Quidditch goalkeeping | 1 March 1980 | |
| 3 | Hermione Jean Granger | Female | Student | Gryffindor | 10¾" vine wood dragon heartstring | Otter | Human | Muggle-born | Brown | Brown | Dumbledore's Army | Order of the Phoenix | Hogwarts School of Witchcraft and Wizardry | Almost everything | 19 September, 1979 |
tail(hp_data)| Id | Name | Gender | Job | House | Wand | Patronus | Species | Blood.status | Hair.colour | Eye.colour | Loyalty | Skills | Birth | Death | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 135 | 135 | Septima Vector | Female | Professor of Arithmancyat Hogwarts | Unknown | Unknown | Human | Black | Hogwarts School of Witchcraft and Wizardry | Before 1974 | |||||
| 136 | 136 | Wilhelmina Grubbly-Plank | Female | Substitute professor of Care of Magical Creatures at Hogwarts | Unknown | Non-corporeal | Human | Grey | Hogwarts School of Witchcraft and Wizardry | ||||||
| 137 | 137 | Fenrir Greyback | Male | Unknown | None | Werewolf | Grey | Lord Voldemort | Death Eaters | Physical combat | Pre 1945 | |||||
| 138 | 138 | Gellert Grindelwald | Male | Revolutionary leader(c. 1920s[6] – 1945) | 15", Elder, Thestral tail hair core | Human | Pure-blood or half-blood | Blond | Blue | Gellert Grindelwald's Acolytes | Duelling | 1883 | March, 1998 | ||
| 139 | 139 | Dobby | Male | Malfoy family's house-elf (? - 1993), Hogwarts kitchens worker (December 1994 - 1998) | | | | | | | |House elf | | | |Green | | | | | |A type of magic specific to house-elves, performed without a wand which includes the ability to apparate, disarm and make objects levitate | |28 June | |Late March, 1998 |
| 140 | 140 | Kreacher | Male | Black family's house-elf (?-1996), Harry Potter's house-elf, Hogwarts kitchen worke | | | | | | | |House el | | | |White | | | | | |Magic performed without a wand which includes the ability to apparate, disarm and make objects levitate | | | | |
str(hp_data)'data.frame': 140 obs. of 15 variables:
$ Id : int 1 2 3 4 5 6 7 8 9 10 ...
$ Name : chr "Harry James Potter" "Ronald Bilius Weasley" "Hermione Jean Granger" "Albus Percival Wulfric Brian Dumbledore" ...
$ Gender : chr "Male" "Male" "Female" "Male" ...
$ Job : chr "Student" "Student" "Student" "Headmaster" ...
$ House : chr "Gryffindor" "Gryffindor" "Gryffindor" "Gryffindor" ...
$ Wand : chr "11\" Holly phoenix feather" "12\" Ash unicorn tail hair " "10¾\" vine wood dragon heartstring" "15\" Elder Thestral tail hair core" ...
$ Patronus : chr "Stag" "Jack Russell terrier" "Otter" "Phoenix" ...
$ Species : chr "Human" "Human" "Human" "Human" ...
$ Blood.status: chr "Half-blood" "Pure-blood" "Muggle-born" "Half-blood" ...
$ Hair.colour : chr "Black" "Red" "Brown" "Silver| formerly auburn" ...
$ Eye.colour : chr "Bright green" "Blue" "Brown" "Blue" ...
$ Loyalty : chr "Albus Dumbledore | Dumbledore's Army | Order of the Phoenix | Hogwarts School of Witchcraft and Wizardry" "Dumbledore's Army | Order of the Phoenix | Hogwarts School of Witchcraft and Wizardry" "Dumbledore's Army | Order of the Phoenix | Hogwarts School of Witchcraft and Wizardry" "Dumbledore's Army | Order of the Phoenix | Hogwarts School of Witchcraft and Wizardry" ...
$ Skills : chr "Parseltongue| Defence Against the Dark Arts | Seeker" "Wizard chess | Quidditch goalkeeping" "Almost everything" "Considered by many to be one of the most powerful wizards of his time" ...
$ Birth : chr "31 July 1980" "1 March 1980" "19 September, 1979" "Late August 1881" ...
$ Death : chr "" "" "" "30 June, 1997 " ...
Esto muestra:
número de filas y columnas
tipo de cada variable (character, numeric, factor, etc.)
una muestra del contenido
Número de filas:
nrow(hp_data)[1] 140
Número de columnas:
ncol(hp_data)[1] 15
Filas y columnas juntas:
dim(hp_data)[1] 140 15
Para poder ver los nombres de las columnas tenemos dos funciones diferentes names() o colnames()
names(hp_data) [1] "Id" "Name" "Gender" "Job" "House"
[6] "Wand" "Patronus" "Species" "Blood.status" "Hair.colour"
[11] "Eye.colour" "Loyalty" "Skills" "Birth" "Death"
colnames(hp_data) [1] "Id" "Name" "Gender" "Job" "House"
[6] "Wand" "Patronus" "Species" "Blood.status" "Hair.colour"
[11] "Eye.colour" "Loyalty" "Skills" "Birth" "Death"
Si queremos explorar la base de datos de forma más completa, R ofrece una función que abre una ventana similar a una hoja de cálculo, donde podemos visualizar todas las filas y columnas. Esto se realiza con la función View().
View(hp_data)Para obtener una primera impresión del comportamiento de las variables numéricas en un data frame, R ofrece la función summary().
Esta función genera un resumen estadístico básico, que incluye información como el valor mínimo y máximo, la mediana, el promedio y los cuartiles.
Estos datos permiten entender rápidamente cómo están distribuidos los valores, identificar variaciones importantes y detectar posibles valores atípicos dentro del conjunto de datos.
summary(hp_data) Id Name Gender Job
Min. : 1.00 Length:140 Length:140 Length:140
1st Qu.: 35.75 Class :character Class :character Class :character
Median : 70.50 Mode :character Mode :character Mode :character
Mean : 70.50
3rd Qu.:105.25
Max. :140.00
House Wand Patronus Species
Length:140 Length:140 Length:140 Length:140
Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character
Blood.status Hair.colour Eye.colour Loyalty
Length:140 Length:140 Length:140 Length:140
Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character
Skills Birth Death
Length:140 Length:140 Length:140
Class :character Class :character Class :character
Mode :character Mode :character Mode :character
Hasta aquí ya tenemos todo lo necesario para “conocer” tus datos: cómo cargarlos, visualizarlos, revisar sus columnas y obtener un resumen general. Este es el primer paso en cualquier análisis.
The Carpentries. (2025). R for Reproducible Scientific Analysis. https://swcarpentry.github.io/r-novice-gapminder/
Demiryürek, G. (2021). Harry Potter Dataset. Kaggle.
https://www.kaggle.com/datasets/gulsahdemiryurek/harry-potter-dataset