Listas con nombre
Parte de la sección Fundamentos del Journey de R de Coddy — lección 74 de 78.
Al igual que los vectores con nombre, las listas pueden tener nombres asignados a sus elementos. Esto hace que su código sea más legible y le permite acceder a los elementos mediante etiquetas significativas en lugar de posiciones numéricas.
Puedes asignar nombres al crear la lista:
person <- list(name = "Alice", age = 25, active = TRUE)
print(person)Salida:
$name
[1] "Alice"
$age
[1] 25
$active
[1] TRUEObserva cómo la salida ahora muestra $name en lugar de [[1]]. Para acceder a los elementos con nombre, utiliza el operador $:
person <- list(name = "Alice", age = 25, active = TRUE)
print(person$age)Salida:
[1] 25También puedes usar corchetes dobles con el nombre como una cadena, lo cual es útil cuando el nombre está almacenado en una variable:
person <- list(name = "Alice", age = 25)
print(person[["name"]])Salida:
[1] "Alice"Modificar elementos con nombre funciona de la misma manera. Usa $ para cambiar valores existentes o añadir otros nuevos:
person <- list(name = "Alice", age = 25)
person$age <- 26
person$city <- "Paris"
print(person)Salida:
$name
[1] "Alice"
$age
[1] 26
$city
[1] "Paris"Desafío
FácilRecibirás tres líneas de entrada:
- El título de un libro (por ejemplo,
The Great Gatsby) - El autor de un libro (por ejemplo,
F. Scott Fitzgerald) - El año de publicación (por ejemplo,
1925)
Realiza las siguientes operaciones:
- Crea una lista con nombre llamada
bookcon tres elementos:title,author, yyear(convierte el año a numérico) - Imprime el título del libro usando el operador
$ - Imprime el año del libro usando corchetes dobles con el nombre como una cadena
- Actualiza el
yearpara que sea 1 año después usando el operador$ - Añade un nuevo elemento llamado
availablecon el valorTRUE - Imprime la lista completa actualizada
Por ejemplo, si las entradas son:
1984
George Orwell
1949La salida debería ser:
[1] "1984"
[1] 1949
$title
[1] "1984"
$author
[1] "George Orwell"
$year
[1] 1950
$available
[1] TRUEExplicación:
book$titleimprime el valor del títulobook[["year"]]imprime el año original- El año se actualiza de 1949 a 1950
- Se añade un nuevo elemento
availablecon el valorTRUE
Hoja de referencia
Las listas pueden tener nombres asignados a sus elementos para una mejor legibilidad y acceso mediante etiquetas significativas.
Crea una lista con nombre asignando nombres durante su creación:
person <- list(name = "Alice", age = 25, active = TRUE)Accede a los elementos con nombre utilizando el operador $:
person$age # Devuelve 25Accede a los elementos con nombre utilizando corchetes dobles con el nombre como una cadena:
person[["name"]] # Devuelve "Alice"Modifica elementos con nombre existentes:
person$age <- 26Añade nuevos elementos con nombre:
person$city <- "Paris"Pruébalo tú mismo
# Leer entrada
con <- file("stdin", "r")
title <- suppressWarnings(readLines(con, n = 1))
author <- suppressWarnings(readLines(con, n = 1))
year <- suppressWarnings(readLines(con, n = 1))
close(con)
# TODO: Escribe tu código a continuación
# 1. Crea una lista con nombre llamada 'book' con los elementos: title, author, y year (convierte year a numérico)
# 2. Imprime el título del libro usando el operador $
# 3. Imprime el año del libro usando corchetes dobles con el nombre como una cadena
# 4. Actualiza el año para que sea 1 año más tarde usando el operador $
# 5. Añade un nuevo elemento llamado 'available' con el valor TRUE
# 6. Imprime la lista completa actualizadaEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 2
Operadores lógicos (AND, OR)Operadores lógicos Parte 2 (NOT)Resumen - Lógica simpleLógica vectorizada Parte 1Lógica vectorizada Parte 27Calculadora para dividir la cuenta
Mensaje de bienvenidaObtener la entrada del usuario2Variables y tipos de datos
Tipo de dato numéricoTipo de dato enteroTipo de dato de caracteresTipo de dato lógicoComprobación de tipos de datosConvenciones de nomenclaturaValores faltantes: NAResumen - Creación de variables8Bucles
Bucle ForBucle WhileBreakNext (Continue)Repaso - FactorialGeneración de secuencias (seq, :)Bucles anidadosRepaso - Entrada dinámica11Vectores
Crear vectores con c()Acceder a elementos de un vectorModificar vectoresOperaciones con vectoresResumen - Vector de preciosResumen - Vector invertidoVectores con nombre14Listas en R
Crear listasAcceso a elementos de la listaModificar listasListas con nombreRepaso - Lista de productos3Operadores Parte 1
Operadores aritméticosDivisión entera y móduloOperadores de asignaciónRepaso - Matemáticas simplesOperadores de comparación6E/S básica
Imprimir salidaCat para salidaSalida con variablesLectura de entrada con readline()Conceptos básicos de conversión de tiposResumen - Calculadora de edadResumen - Verdadero o falso9Funciones
Declarar una funciónArgumentos de una funciónValores de retornoRepaso - Función SigmaRepaso - Función de validaciónValores de parámetros por defecto