5  Listas

Una lista es una colección ordenada de elementos. Las listas son mutables, lo que significa que podemos actualizar el elemento de la lista a nivel de índice.

Sin embargo, una lista también es un tipo de secuencia, por lo que admite la indexación. Para crear la lista, necesitamos poner elementos dentro de “list( )” separándolos con una coma.

#Creando una lista
lista1 <- list("Pedro Navaja", 333)
lista1
[[1]]
[1] "Pedro Navaja"

[[2]]
[1] 333
#Clase de la lista
class(lista1)
[1] "list"

5.1 Acceder a los elementos de la lista

La lista admite la indexación (comenzando desde 1), por lo que, para acceder a los elementos de una lista de R, usaremos el índice de ese elemento.

# Accede al primer elemento
lista1[[1]]
[1] "Pedro Navaja"
# Accede al segundo elemento
lista1[[2]]
[1] 333

Podemos incluir en una lista, secuencias y vectores.

#Creando una lista que incluye secuencias y vectores
lista2 <- list(2:5, c("a", "b"), c(TRUE, FALSE, TRUE), 10.5, "Elemento")
lista2
[[1]]
[1] 2 3 4 5

[[2]]
[1] "a" "b"

[[3]]
[1]  TRUE FALSE  TRUE

[[4]]
[1] 10.5

[[5]]
[1] "Elemento"
# Accede al primer elemento
lista2[[1]]
[1] 2 3 4 5
# Muestra la estructura de la lista
str(lista2)
List of 5
 $ : int [1:4] 2 3 4 5
 $ : chr [1:2] "a" "b"
 $ : logi [1:3] TRUE FALSE TRUE
 $ : num 10.5
 $ : chr "Elemento"

5.2 Agregar elementos a una lista

lista3 <- list(3, "Pepe", 5:9)
elemento_nuevo <- "Sara"
#Podemos actualizar la lista3 o crear una nueva lista donde este agregado el elemento_nuevo
lista3 <- list(lista3, elemento_nuevo)
lista3
[[1]]
[[1]][[1]]
[1] 3

[[1]][[2]]
[1] "Pepe"

[[1]][[3]]
[1] 5 6 7 8 9


[[2]]
[1] "Sara"

5.3 Concatenacion de listas

De esta manera se pueden combinar elementos de una lista a otra. Las listas se colocan en el orden que se desea que aparezcan.

lista4 <- list(2, 4, 6, 8, 10)
lista5 <- list(1, 3, 5, 7)
#Concatenando listas
lista6 <- list(lista4, lista5)
lista6
[[1]]
[[1]][[1]]
[1] 2

[[1]][[2]]
[1] 4

[[1]][[3]]
[1] 6

[[1]][[4]]
[1] 8

[[1]][[5]]
[1] 10


[[2]]
[[2]][[1]]
[1] 1

[[2]][[2]]
[1] 3

[[2]][[3]]
[1] 5

[[2]][[4]]
[1] 7

5.4 Actualizar elementos de la lista

Usando la indexación, podemos actualizar el valor indexado especificado en una lista.

lista7 <- list(1,2,3,4,5)
lista7[2] <- 22
lista7
[[1]]
[1] 1

[[2]]
[1] 22

[[3]]
[1] 3

[[4]]
[1] 4

[[5]]
[1] 5

5.5 Eliminar un elemento de la lista

Para eliminar un elemento se usa el siguiente codigo:

lista8 <- list(1,2,3,4)
lista8 <- lista8[-2]
lista8
[[1]]
[1] 1

[[2]]
[1] 3

[[3]]
[1] 4

5.6 Comprobar la pertenencia de un elemento

Podemos usar la funcion %in% para comprobar si un elemento se encuentra en la lista.

países <- list("Panamá", "Perú", "Paraguay")
"Panamá" %in% países
[1] TRUE