6  Listas

En R Studio, una lista es una estructura de datos que se utiliza para almacenar colecciones heterogéneas de elementos. A diferencia de los vectores, que almacenan elementos del mismo tipo, una lista puede contener elementos de diferentes tipos, como números, cadenas, vectores u otras listas. Las listas son muy versátiles y se utilizan para organizar y estructurar datos de manera flexible. Aquí tienes una introducción a las listas y algunas funciones relacionadas con ejemplos:

6.1 Crear una Lista

Puedes crear una lista utilizando la función “list()”. Cada elemento de la lista se especifica mediante su nombre y su valor. Aquí hay un ejemplo:

mi_lista <- list(nombre = "Kennedy",edad = 19,ciudad = "Ventanilla",notas =c(90, 85, 88))
mi_lista
$nombre
[1] "Kennedy"

$edad
[1] 19

$ciudad
[1] "Ventanilla"

$notas
[1] 90 85 88

En este ejemplo, hemos creado una lista llamada “mi_lista” con cuatro elementos diferentes: un nombre (cadena), una edad (número), una ciudad (cadena) y un vector de notas (vector numérico).

6.2 Acceder a Elementos de una Lista

Puedes acceder a elementos individuales de una lista utilizando el operador “$” o corchetes “[ ]”. Aquí tienes ejemplos:

nombre <- mi_lista$nombre # Obtiene el nombre
nombre
[1] "Kennedy"
edad <- mi_lista$edad # Obtiene la edad
edad
[1] 19
notas <- mi_lista$notas # Obtiene el vector de notas
notas
[1] 90 85 88

También puedes acceder a elementos mediante corchetes y el índice del elemento en la lista:

nombre <- mi_lista[[1]] # Obtiene el nombre
nombre
[1] "Kennedy"
edad <- mi_lista[[2]] # Obtiene la edad
edad
[1] 19
notas <- mi_lista[[4]] # Obtiene el vector de notas
notas
[1] 90 85 88

6.3 Modificar Elementos de una Lista

Puedes modificar elementos de una lista asignando nuevos valores a ellos. Por ejemplo:

mi_lista$nombre <- "Rocio" # Modifica el nombre
mi_lista$nombre
[1] "Rocio"
mi_lista$notas[2] <- 95 # Modifica la segunda nota
mi_lista$notas[2]
[1] 95
mi_lista$ciudad <- c("Los Ángeles", "San Francisco") # Modifica la ciudad como un vector
mi_lista$ciudad
[1] "Los Ángeles"   "San Francisco"

6.4 Agregar y Eliminar Elementos de una Lista

Puedes agregar elementos a una lista utilizando el operador “$” o la función “append()”. Para eliminar elementos, puedes usar “NULL”. Aquí hay ejemplos:

mi_lista$telefono <- "11-1526-0211" # Agrega un número de teléfono
mi_lista$telefono
[1] "11-1526-0211"
mi_lista <- append(mi_lista, list(email ="rocioeleven.gmail.com")) #Agrega un correo electrónico
mi_lista
$nombre
[1] "Rocio"

$edad
[1] 19

$ciudad
[1] "Los Ángeles"   "San Francisco"

$notas
[1] 90 95 88

$telefono
[1] "11-1526-0211"

$email
[1] "rocioeleven.gmail.com"

6.4.1 Eliminar elementos de la lista

mi_lista$telefono <- NULL # Elimina el número de teléfono
mi_lista$telefono
NULL
mi_lista$email <- NULL # Elimina el correo electrónico
mi_lista$email
NULL
mi_lista
$nombre
[1] "Rocio"

$edad
[1] 19

$ciudad
[1] "Los Ángeles"   "San Francisco"

$notas
[1] 90 95 88

6.5 Recorrer una Lista

Puedes recorrer una lista utilizando un bucle “for” o aplicando funciones como “lapply()” o “sapply()”. Estas funciones permiten aplicar una operación a cada elemento de la lista. Por ejemplo:

for (elemento in mi_lista) {
print(elemento)}
[1] "Rocio"
[1] 19
[1] "Los Ángeles"   "San Francisco"
[1] 90 95 88

6.6 Aplicar una función a cada elemento

resultados <- lapply(mi_lista, function(x) paste("Valor:", x))
resultados
$nombre
[1] "Valor: Rocio"

$edad
[1] "Valor: 19"

$ciudad
[1] "Valor: Los Ángeles"   "Valor: San Francisco"

$notas
[1] "Valor: 90" "Valor: 95" "Valor: 88"

6.7 Concatenacion

En R, puedes concatenar (unir) dos listas utilizando la función “c()” o el operador “+”. Además, puedes repetir una lista varias veces utilizando el operador “rep()”. A continuación, te muestro cómo hacerlo:

lista1 <-list(nombre="Yanet",edad=18)
lista1
$nombre
[1] "Yanet"

$edad
[1] 18
lista2 <-list(ciudad="Lima",notas=c(15, 18, 20))
lista2
$ciudad
[1] "Lima"

$notas
[1] 15 18 20
lista_concatenada_c <-c(lista1, lista2) # Concatenación con el operador c
lista_concatenada_c
$nombre
[1] "Yanet"

$edad
[1] 18

$ciudad
[1] "Lima"

$notas
[1] 15 18 20

Ambas formas de concatenación producirán una lista que contiene los elementos de ambas listas originales.

6.8 Repetición

Se Puede repetir una lista varias veces utilizando la función “rep()”. Aquí tienes un ejemplo:

mi_lista <- list(nombre = "Van", edad = 3)
mi_lista
$nombre
[1] "Van"

$edad
[1] 3
lista_repetida <- rep(list(mi_lista), times = 2)
lista_repetida
[[1]]
[[1]]$nombre
[1] "Van"

[[1]]$edad
[1] 3


[[2]]
[[2]]$nombre
[1] "Van"

[[2]]$edad
[1] 3

En este ejemplo, “lista_repetida” contendrá tres copias de “mi_lista”. Puedes especificar cuántas veces deseas repetir la lista utilizando el argumento “times” en la función “rep()”.

Estas operaciones son útiles cuando se necesita combinar o repetir listas en un análisis o manipulación de datos en R.

Las listas son muy útiles para estructurar datos complejos en R, como conjuntos de observaciones con diferentes tipos de variables. Se Puede organizar y acceder a estos datos de manera flexible utilizando listas.