# Crear una lista con diferentes tipos de elementos
<- list(nombre = "Rodri", edad = 56, puntajes = c(95, 88, 75)) mi_lista
3 Lista
En R, una lista es una estructura de datos que puede contener elementos de diferentes tipos, como vectores, matrices, funciones y otras listas. Las listas se utilizan para almacenar conjuntos de datos heterogéneos en una sola estructura. Puedes crear listas utilizando la función list()
o utilizando notación de lista con corchetes cuadrados [ ]
.
Creación de una lista:
Puedes crear una lista utilizando la función
list()
y especificando los elementos que deseas incluir:
3.1 Acceder a los elementos de la lista
Acceso por índice (corchetes cuadrados):
Puedes acceder a elementos específicos de una lista utilizando su posición (índice) dentro de la lista. Los índices comienzan desde 1. Por ejemplo:
<- list("rojo", "azul", "amarillo") mi_lista <- mi_lista[1] # Accede al primer elemento de la lista ("rojo") elemento1 <- mi_lista[2] # Accede al segundo elemento de la lista ("azul") elemento2
Acceso por nombre (operador
$
):Puedes acceder a los elementos de una lista por su nombre utilizando el operador
$
. Esto es especialmente útil cuando los elementos de la lista tienen nombres. Por ejemplo:<- list(color1 = "rojo", color2 = "azul", color3 = "amarillo") mi_lista <- mi_lista$color1 # Accede al elemento "fruta1" de la lista ("rojo") color1 <- mi_lista$color2 # Accede al elemento "fruta2" de la lista ("azul") color2
Acceso por posición (doble corchete
[[ ]]
):Puedes acceder a elementos específicos de una lista utilizando
[[ ]]
y el índice de posición. Esto te dará directamente el valor del elemento, en lugar de una lista que contiene ese valor. Por ejemplo:<- list("rojo", "azul", "amarillo") mi_lista <- mi_lista[[1]] # Accede al primer elemento de la lista ("rojo") elemento1 <- mi_lista[[2]] # Accede al segundo elemento de la lista ("azul") elemento2
3.2 Agregar elemento(s) en la lista
Usando la función
c()
para combinar listas:Puedes usar la función
c()
para combinar dos listas en una sola. Esto te permite agregar elementos a la lista existente. Aquí tienes un ejemplo:<- list("rojo", "azul", "amarillo") mi_lista <- list("verde", "negro") nuevos_elementos <- c(mi_lista, nuevos_elementos) mi_lista
Usando el operador
$
para asignar un nuevo elemento por nombre:Puedes agregar un nuevo elemento a la lista utilizando el operador
$
y asignando un valor a un nombre que aún no existe en la lista. Por ejemplo:<- list("rojo", "azul", "amarillo") mi_lista $nuevo_color <- "verde" mi_lista
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. Aquí tienes un ejemplo:<- list("rojo", "azul", "amarillo") mi_lista <- append(mi_lista, list("verde")) mi_lista
3.3 Concatenación y repetición
En R, puedes realizar concatenación y repetición de elementos de diversas maneras, dependiendo de lo que necesites hacer.
Concatenación de vectores por fila o columna. Para concatenar vectores por fila (uno debajo del otro), puedes usar la función
rbind()
. Por otro lado para concatenar vectores por columna (uno al lado del otro), puedes usar la funcióncbind()
.Ejemplo de concatenación por fila:
<- c(1, 2, 3) vector1 <- c(4, 5, 6) vector2 <- rbind(vector1, vector2) resultado
Ejemplo de concatenación por columna:
<- c(1, 2, 3) vector1 <- c(4, 5, 6) vector2 <- cbind(vector1, vector2) resultado
Concatenación de listas. Para concatenar listas, puedes usar la función
c()
.Ejemplo:
<- list(1, 2, 3) lista1 <- list("a", "b", "c") lista2 <- c(lista1, lista2) resultado
Repetición de elementos en un vector. Para repetir elementos en un vector, puedes usar el operador
rep()
.<- c(1, 2, 3) vector <- rep(vector, times = 3) # Repite el vector tres veces repetido
Repetición de elementos en una lista. Para repetir elementos en una lista, puedes usar un bucle
for
o funciones comolapply()
oreplicate()
.<- list("a", "b") elemento <- replicate(3, elemento, simplify = FALSE) # Repite el elemento en una lista tres veces repetido
3.4 Actualizar la lista de R
Para actualizar (modificar) una lista en R, puedes utilizar diferentes enfoques según tus necesidades.
Actualización por Nombre:
Si deseas actualizar un elemento específico en la lista por su nombre, puedes hacerlo asignando un nuevo valor a ese nombre. Por ejemplo:
<- list(nombre = "Rose", edad = 19, puntajes = c(95, 88, 75)) mi_lista $edad <- 31 mi_lista
Actualización por Índice:
Si conoces la posición del elemento que deseas actualizar en la lista, puedes hacerlo mediante el índice. Recuerda que en R los índices comienzan desde 1. Por ejemplo:
<- list("rojo", "azul", "amarillo") mi_lista 2]] <- "verde" mi_lista[[
3.5 Eliminar un elemento de la lista de R
Para eliminar un elemento de una lista en R, puedes utilizar la función NULL
para asignar un valor nulo al elemento que deseas eliminar. Aquí tienes algunos ejemplos:
Supongamos que tienes la siguiente lista:
<- list(nombre = "Rose", edad = 19, puntajes = c(95, 88, 75)) mi_lista
Eliminar por Nombre:
Si conoces el nombre del elemento que deseas eliminar, puedes hacerlo asignando
NULL
al nombre correspondiente de la lista:$edad <- NULL mi_lista
Eliminar por Índice:
Si no conoces el nombre del elemento, pero sabes su posición (índice) en la lista, puedes eliminarlo usando la notación de doble corchete
[[]]
y asignandoNULL
al índice correspondiente. Recuerda que los índices comienzan desde 1:2]] <- NULL mi_lista[[
3.6 Comprobar la pertenencia de un elemento
Utilizando el operador
%in%
:El operador
%in%
se utiliza para verificar si un elemento está presente en un vector o una lista. Devuelve un valor lógico (TRUE
oFALSE
) que indica si el elemento está en la estructura de datos.Ejemplo con un vector:
<- c("Manzana", "Naranja", "Plátano") mi_vector <- "Manzana" elemento <- elemento %in% mi_vector esta_presente
Utilizando la función
which()
:La función
which()
se utiliza para encontrar los índices de elementos que cumplan cierta condición. Puedes usarwhich()
para verificar si un elemento está presente en un vector.Ejemplo con un vector:
<- c("Manzana", "Naranja", "Plátano") mi_vector <- "Manzana" elemento <- which(mi_vector == elemento) indices
Utilizando la función
match()
:La función
match()
se utiliza para encontrar la posición de un elemento en un vector. DevuelveNA
si el elemento no se encuentra en el vector.Ejemplo con un vector:
<- c("Manzana", "Naranja", "Plátano") mi_vector <- "Manzana" elemento <- match(elemento, mi_vector) posicion
3.7 Ordenar los elementos de la lista
Ordenar elementos alfabéticamente o numéricamente:
Puedes ordenar elementos de una lista alfabéticamente o numéricamente utilizando la función
sort()
.Ejemplo con elementos alfabéticos:
<- list("Rojo", "Azul", "Amarillo") mi_lista <- sort(unlist(mi_lista)) mi_lista_ordenada
Ejemplo con elementos numéricos:
<- list(8, 4, 2, 1) mi_lista <- sort(unlist(mi_lista)) mi_lista_ordenada
Ordenar elementos de una lista alfabéticamente por nombres:
Si deseas ordenar los elementos de una lista alfabéticamente por sus nombres, puedes usar la función
sort()
junto connames()
.Ejemplo:
<- list(b = "rojo", a = "azul", c = "amarillo") mi_lista <- mi_lista[order(names(mi_lista))] mi_lista_ordenada
3.8 Longitud de una lista y recuento de un elemento en la lista
Puedes obtener la longitud de una lista y contar cuántas veces aparece un elemento específico en la lista en R utilizando funciones y operadores específicos.
Longitud de una lista
Para obtener la longitud de una lista, puedes utilizar la función
length()
.<- list("Manzana", "Naranja", "Plátano") mi_lista <- length(mi_lista) longitud
Recuento de un elemento en la lista
Para contar cuántas veces aparece un elemento específico en una lista, puedes utilizar la función
sum()
en combinación con la funciónsapply()
.Supongamos que deseas contar cuántas veces aparece la palabra “Manzana” en la lista
mi_lista
:<- list("Manzana", "Naranja", "Plátano", "Manzana", "Manzana") mi_lista <- "Manzana" elemento_a_contar <- sum(sapply(mi_lista, function(x) x == elemento_a_contar)) recuento
3.9 Corte de lista
Para realizar un corte (slicing) de una lista en R y obtener una parte específica de la lista, puedes utilizar la notación de corchetes [ ]
. Puedes especificar los índices o nombres de los elementos que deseas extraer de la lista.
Corte por índices:
Puedes cortar una lista utilizando los índices de los elementos que deseas extraer. Los índices comienzan desde 1 en R. Por ejemplo:
<- list("Manzana", "Naranja", "Plátano", "Pera", "Uva") mi_lista <- mi_lista[2:4] corte
Corte por nombres:
Si la lista tiene nombres asociados a sus elementos, puedes cortar la lista utilizando los nombres de los elementos que deseas extraer. Por ejemplo:
<- list(fruta1 = "Manzana", fruta2 = "Naranja", fruta3 = "Plátano") mi_lista <- mi_lista[c("fruta1", "fruta3")] corte
Corte por condición lógica:
También puedes cortar una lista basándote en una condición lógica. Por ejemplo, si deseas obtener elementos que cumplan una cierta condición, puedes hacerlo de la siguiente manera:
<- list(5, 10, 15, 20, 25) mi_lista <- mi_lista[mi_lista > 10] corte
3.10 Convertir cadenas y tuplas en la lista
En R, puedes convertir cadenas y tuplas en listas de varias maneras, dependiendo de la estructura y formato de tus datos.
Convertir una cadena en una lista de caracteres:
Puedes convertir una cadena en una lista de caracteres utilizando la función
strsplit()
.<- "rojo azul amarillo" cadena <- strsplit(cadena, " ") lista_caracteres
Convertir una tupla en una lista de elementos:
En R, las tuplas no son una estructura de datos nativa como lo son en otros lenguajes de programación, pero puedes utilizar vectores o listas para lograr resultados similares.
Si tienes una tupla representada como un vector, simplemente puedes convertir ese vector en una lista:
<- c("rojo", "azul", "amarillo") tupla <- as.list(tupla) lista
Si tienes una tupla representada como una lista, no necesitas realizar ninguna conversión adicional, ya que ya tienes una lista:
<- list("rojo", "azul", "amarillo") tupla