<- list(nombre = "Juan", edad = 30, ciudad = "Perú") mi_diccionario
5 Diccionarios
En R, no existe una estructura de datos nativa llamada “diccionario” como en algunos otros lenguajes de programación, pero puedes emular diccionarios utilizando listas con nombres o matrices asociativas. Las listas con nombres son una forma común de representar diccionarios en R.
Creación de un diccionario en R usando listas con nombres:
Puedes crear un diccionario emulado utilizando una lista con nombres. Cada par clave-valor en el diccionario se representa como un elemento en la lista con un nombre asociado. Aquí tienes un ejemplo:
5.1 Agregar elemento(s) en el diccionario
En R, puedes agregar elementos a un diccionario emulado, que se representa mediante una lista con nombres, simplemente asignando un nuevo valor a una clave que aún no existe en el diccionario.
<- list(nombre = "Juan", edad = 30, ciudad = "Nueva York")
mi_diccionario $profesion <- "Ingeniero" mi_diccionario
5.2 Eliminar un elemento del diccionario de R
Para eliminar un elemento de un diccionario emulado en R, que está representado como una lista con nombres, puedes usar la función NULL
para asignar un valor nulo al elemento que deseas eliminar.
<- list(nombre = "Juan", edad = 30, ciudad = "Nueva York", profesion = "Ingeniero")
mi_diccionario $profesion <- NULL mi_diccionario
5.3 Comprobar la pertenencia de un elemento
Para comprobar si una clave específica pertenece a un diccionario emulado en R, que está representado como una lista con nombres, puedes utilizar la función exists()
. La función exists()
verifica si una variable o un elemento con el nombre especificado existe en el entorno actual. En este caso, usaremos exists()
para verificar si una clave específica existe en el diccionario.
<- list(nombre = "Juan", edad = 30, ciudad = "Nueva York")
mi_diccionario if (exists("edad", where = mi_diccionario)) {
cat("La clave 'edad' existe en el diccionario.")
else {
} cat("La clave 'edad' no existe en el diccionario.")
}
La clave 'edad' existe en el diccionario.
5.4 Obtener la lista de todas las claves de un diccionario
Para obtener la lista de todas las claves (nombres) de un diccionario emulado en R, que está representado como una lista con nombres, puedes utilizar la función names()
. La función names()
devuelve un vector con los nombres de los elementos de la lista.
<- list(nombre = "Juan", edad = 30, ciudad = "Nueva York")
mi_diccionario <- names(mi_diccionario) claves
5.5 Obtener la lista de todos los valores de un diccionario
Para obtener la lista de todos los valores de un diccionario emulado en R, que está representado como una lista con nombres, puedes utilizar la función unlist()
. La función unlist()
permite extraer todos los valores de la lista y colocarlos en un solo vector.
# Crear un diccionario utilizando una lista con nombres
<- list(nombre = "Juan", edad = 30, ciudad = "Nueva York")
mi_diccionario
# Obtener la lista de todos los valores del diccionario
<- unlist(mi_diccionario)
valores
# Imprimir la lista de valores
cat("Valores del diccionario:", valores, "\n")
Valores del diccionario: Juan 30 Nueva York
5.6 Obtener la lista de tuplas de pares clave y valor
Para obtener una lista de tuplas de pares clave-valor de un diccionario emulado en R (representado como una lista con nombres), puedes utilizar la función as.list()
junto con la función names()
.
<- list(nombre = "Juan", edad = 30, ciudad = "Nueva York")
mi_diccionario <- as.list(mi_diccionario) tuplas
5.7 Iterando un diccionario
Para iterar a través de un diccionario emulado en R, que se representa como una lista con nombres, puedes utilizar un bucle for
o funciones de la familia apply
.
Usando un bucle
for
:Puedes utilizar un bucle
for
para iterar a través de las claves del diccionario y acceder a los valores correspondientes. Aquí tienes un ejemplo:<- list(nombre = "Juan", edad = 30, ciudad = "Nueva York") mi_diccionario for (clave in names(mi_diccionario)) { <- mi_diccionario[[clave]] valor cat("Clave:", clave, "Valor:", valor, "\n") }
Clave: nombre Valor: Juan Clave: edad Valor: 30 Clave: ciudad Valor: Nueva York
Usando la función
lapply()
:Puedes utilizar la función
lapply()
para aplicar una función a cada elemento del diccionario, lo que te permite iterar a través de las claves y valores de manera más eficiente. Aquí tienes un ejemplo:<- list(nombre = "Juan", edad = 30, ciudad = "Nueva York") mi_diccionario <- lapply(names(mi_diccionario), function(clave) { resultados <- mi_diccionario[[clave]] valor return(list(Clave = clave, Valor = valor)) }) for (resultado in resultados) { cat("Clave:", resultado$Clave, "Valor:", resultado$Valor, "\n") }
Clave: nombre Valor: Juan Clave: edad Valor: 30 Clave: ciudad Valor: Nueva York
5.8 Conversión de clave, valor iterable en diccionario
Para convertir un iterable de pares clave-valor en un diccionario en R, puedes utilizar la función as.list()
.
Usando
as.list()
:Si tienes una lista de pares clave-valor representada como una lista de listas o una matriz, puedes utilizar
as.list()
para convertirla en un diccionario. Cada par clave-valor se convierte en un elemento del diccionario. Aquí tienes un ejemplo:<- list(c(clave = "nombre", valor = "Juan"), pares c(clave = "edad", valor = 30), c(clave = "ciudad", valor = "Nueva York")) <- as.list(setNames(sapply(pares, `[[`, 2), sapply(pares, `[[`, 1))) mi_diccionario <- mi_diccionario$nombre nombre <- mi_diccionario$edad edad <- mi_diccionario$ciudad ciudad