#Creando una lista
<- list("Juan Perez", 234)
lista1 lista1
[[1]]
[1] "Juan Perez"
[[2]]
[1] 234
#Clase de la lista
class(lista1)
[1] "list"
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
<- list("Juan Perez", 234)
lista1 lista1
[[1]]
[1] "Juan Perez"
[[2]]
[1] 234
#Clase de la lista
class(lista1)
[1] "list"
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
1]] lista1[[
[1] "Juan Perez"
# Accede al segundo elemento
2]] lista1[[
[1] 234
Podemos incluir en una listas, secuencias y vectores.
#Creando una lista que incluye secuencias y vectores
<- list(2:5, c("a", "b"), c(TRUE, FALSE, TRUE), 10.5, "Elemento")
lista2 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
1]] lista2[[
[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"
<- list(3, "Pepe", 5:9)
lista3 <- "Sara"
elemento_nuevo #Podemos actualizar la lista3 o crear una nueva lista donde este agregado el elemento_nuevo
<- list(lista3, elemento_nuevo)
lista3 lista3
[[1]]
[[1]][[1]]
[1] 3
[[1]][[2]]
[1] "Pepe"
[[1]][[3]]
[1] 5 6 7 8 9
[[2]]
[1] "Sara"
De esta manera se pueden combinar elementos de una lista a otra. Las listas se colocan en el orden que se desea que aparezcan.
<- list(2, 4, 6, 8, 10)
lista1 <- list(1, 3, 5, 7)
lista2 <- list(lista2, lista1)
numeros print(numeros)
[[1]]
[[1]][[1]]
[1] 1
[[1]][[2]]
[1] 3
[[1]][[3]]
[1] 5
[[1]][[4]]
[1] 7
[[2]]
[[2]][[1]]
[1] 2
[[2]][[2]]
[1] 4
[[2]][[3]]
[1] 6
[[2]][[4]]
[1] 8
[[2]][[5]]
[1] 10
Actualizar la lista de Python
Usando la indexación, podemos actualizar el valor indexado especificado en una lista.
<- list(1,2,3,4,5,6)
numeros 2] <- 22
numeros[print(numeros)
[[1]]
[1] 1
[[2]]
[1] 22
[[3]]
[1] 3
[[4]]
[1] 4
[[5]]
[1] 5
[[6]]
[1] 6
Para eliminar un elemento se usa el siguiente codigo:
<- list(1,2,3,4,5,6)
numeros <- numeros[numeros != 6]
numeros print(numeros)
[[1]]
[1] 1
[[2]]
[1] 2
[[3]]
[1] 3
[[4]]
[1] 4
[[5]]
[1] 5
Analogamente, tambien se puede usar:
<- list(1,2,3,4,5,6)
numeros <- numeros[-2]
numeros print(numeros)
[[1]]
[1] 1
[[2]]
[1] 3
[[3]]
[1] 4
[[4]]
[1] 5
[[5]]
[1] 6
Podemos usar la funcion %in% para comprobar si un elemento se encuentra en la lista.
<- list("fresa", "papaya", "piña")
frutas "fresa" %in% frutas
[1] TRUE
cat("Comprobando si el mango está en la lista :", "plátano" %in% frutas)
Comprobando si el mango está en la lista : FALSE
Para ordenar los elementos de una lista primero debemos transformarla a un vector, luego ordenamos el vector con la funcion “sort” y por ultimo volvemos a convertirla a una lista.
<- list(20, 25, 22, 64, 15, 28)
mi_lista
<- unlist(mi_lista)
mi_vector <- sort(mi_vector)
mi_vector_ordenado
<- list(mi_vector_ordenado)
mi_lista_ordenada print(mi_lista_ordenada)
[[1]]
[1] 15 20 22 25 28 64
Si queremos ordenarla de manera decreciente deberemos seguir los mismos pasos pero agregando “decreasing = True” en la funcion sort.
<- list(20, 25, 22, 64, 15, 28)
mi_lista
<- unlist(mi_lista)
mi_vector <- sort(mi_vector, decreasing = TRUE)
mi_vector_ordenado
<- list(mi_vector_ordenado)
mi_lista_ordenada print(mi_lista_ordenada)
[[1]]
[1] 64 28 25 22 20 15
Para obtener la longitud de cualquier lista (tamaño de la lista), podemos usar la función len(). Y para obtener el recuento de cuántas apariciones del elemento o elemento especificado, podemos usar la función count().
# Ejemplo 1
<- list(20, 25, 22, 64, 15, 28,25,30,25)
mi_lista
cat("Mi Lista:\n")
Mi Lista:
print(mi_lista)
[[1]]
[1] 20
[[2]]
[1] 25
[[3]]
[1] 22
[[4]]
[1] 64
[[5]]
[1] 15
[[6]]
[1] 28
[[7]]
[1] 25
[[8]]
[1] 30
[[9]]
[1] 25
# Hallar la longitud
<- length(mi_lista)
longitud_lista
print(longitud_lista)
[1] 9
# Hallar cuantas veces contengo un elemento
<- sum(mi_lista ==25)
cant_lista print(cant_lista)
[1] 3
# Ejemplo 2
<- c(1,2,3,4,5) mi_lista
Analogia de una tupla de Python en R.Como las tuplas son inmutables, no podemos agregar ni modificar la tupla existente. Pero de otra forma, podemos usar el operador de concatenación “+” y concatenar la nueva tupla con un solo elemento de la existente y crear una nueva referencia de tupla.
# Ejemplo 1
# Tupla Inicial
<- c(1, 2, 3)
tupla_inicial print(paste("tupla t1 =", tupla_inicial))
[1] "tupla t1 = 1" "tupla t1 = 2" "tupla t1 = 3"
# Crear una nueva tupla agregando (4,), tupla con un solo elemento en la tupla inicial
<- c(tupla_inicial, 4)
tupla_inicial_1 print(paste("tuple tupla_inicial_1.1 =", tupla_inicial_1))
[1] "tuple tupla_inicial_1.1 = 1" "tuple tupla_inicial_1.1 = 2"
[3] "tuple tupla_inicial_1.1 = 3" "tuple tupla_inicial_1.1 = 4"
tupla_inicial_1
[1] 1 2 3 4
# Para crear una tupla con un solo elemento, es necesario incluir una coma al final:
<- c('a')
t1 t1
[1] "a"
#Averiguar el tipo de data
class(t1)
[1] "character"
# Otra forma de construir una tupla es utilizando la función interna tuple. Sin argumentos, ésta crea una tupla vacía:
<- c()
t3 t3
NULL
# Si el argumento es una secuencia (cadena, lista, o tupla), el resultado de la llamada a tuple es una tupla con los elementos de la secuencia:
# Crear una lista con cada letra de la palabra "Programación"
<- 'Programación'
palabra <- strsplit(palabra, split = '')[[1]]
lista_de_letras
# Imprimir la lista de letras
print(lista_de_letras)
[1] "P" "r" "o" "g" "r" "a" "m" "a" "c" "i" "ó" "n"
<- matrix(1:9, nrow = 3, ncol = 3)
mi_tabla
cat("Mi Tabla:\n")
Mi Tabla:
print(mi_tabla)
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
<- data.frame(
mi_df
Nombre = c("Ana", "Carlos", "Elena"),
Edad = c(25, 32, 28),
Ciudad = c("Madrid", "Barcelona", "Valencia")
)
cat("Mi Data Frame:\n")
Mi Data Frame:
print(mi_df)
Nombre Edad Ciudad
1 Ana 25 Madrid
2 Carlos 32 Barcelona
3 Elena 28 Valencia