3  Lista

Las listas almacenan cualquier cantidad de artículos de cualquier tipo. Una lista puede contener tods los números o caracteres o una combinación de los dos, marcos de datos o, de forma recursiva, otras listas.

Creación de una lista:
Use la función list() y especifique los elementos.

lista1 <- list(nombre = "Juan", edad = 18, notas = c(17, 15, 16))

3.1 Acceder a los elementos de una lista

  1. Acceso por índice ( [ ]):
    Usando su índice dentro de la lista mediante corchetes. Los índices comienzan desde 1.

    lista1 <- list("rojo", "verde", "azul")
    a <- lista1[1]
  2. Acceso por índice ([[ ]]) :
    Utilizando doble cochete [[ ]] .

    lista2 <- list("rojo", "verde", "azul")
    b <- lista2[[1]]  
  3. Acceso por nombre (con $):
    Utilizando el operador $.

    lista3 <- list(nombre = "Juan", edad = 18, notas = c(17, 15, 16))
    lista3$edad
    [1] 18
    lista3$notas
    [1] 17 15 16

3.2 Agregar elementos en la lista

  1. Usando la función c() :
    Se usa la función c() para combinar dos listas en una sola. Esto te permite agregar elementos a la lista existente.

    lista4 <- list("rojo", "verde", "azul")
    nuevos_elementos <- list("blanco", "negro")
    lista4 <- c(lista4, nuevos_elementos)
  2. Usando el operador $ :
    Se usa el operador $, asignando un valor a un nombre que aún no existe en la lista.

    lista5 <- list("rojo", "verde", "azul")
    lista5$nuevo_color <- "blanco"
  3. Usando la función append():
    La función append() te permite agregar elementos a una lista especificando el nombre del elemento y el valor que deseas agregar.

    lista6 <- list("rojo", "verde", "azul")
    lista6 <- append(lista6, list("blanco"))

3.3 Concatenación y repetición

  1. Concatenación de vectores
    Para concatenar vectores por fila (uno debajo del otro, puedes usar la funcion rbind()

    vector1 <- c(1, 2, 3)
    vector2 <- c(4, 5, 6)
    resultado1 <- rbind(vector1, vector2)

    Para concatenar vectores por columna (uno al lado del otro), puedes usar la función cbind()

    vector1 <- c(1, 2, 3)
    vector2 <- c(4, 5, 6)
    resultado2 <- cbind(vector1, vector2)
  2. Concatenación de listas
    Para cocatenar listas, puedes usar la función c()

    lista1 <- list(1, 2, 3)
    lista2 <- list("a", "b", "c")
    resultado <- c(lista1, lista2)
  3. Repetición de elementos

    Repetición de elementos en un vector:
    Para repetir elementos en un vector se usa el operador rep().

    vector <- c(1, 2, 3)
    repetir1 <- rep(vector, times = 3)

    Repetición de elementos en una lista:
    Para repetir elementos en una lista se usa funciones como lapply() o replicate() o usando bucle con for.

    elemento <- list("a", "b")
    repetir2 <- replicate(3, elemento, simplify = FALSE)

3.4 Actualizar la lista

  1. Actualización por nombre:
    Usando $ se puede actualizar un elemento en la lista por su nombre.

    lista10 <- list(nombre = "Juan", edad = 18, notas = c(95, 88, 75))
    lista10$edad <- 20
  2. Actualización por Índice:
    Conociendo la posición del elemento que se desea actualizar en la lista, se puede hacerlo mediante el índice.

    lista20 <- list("azul", "verde", "rojo")
    lista20[[3]] <- "blanco"