Menu
Coddy logo textTech

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] TRUE

Observa 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] 25

Tambié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"
challenge icon

Desafío

Fácil

Recibirás tres líneas de entrada:

  1. El título de un libro (por ejemplo, The Great Gatsby)
  2. El autor de un libro (por ejemplo, F. Scott Fitzgerald)
  3. El año de publicación (por ejemplo, 1925)

Realiza las siguientes operaciones:

  1. Crea una lista con nombre llamada book con tres elementos: title, author, y year (convierte el año 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 year para que sea 1 año después usando el operador $
  5. Añade un nuevo elemento llamado available con el valor TRUE
  6. Imprime la lista completa actualizada

Por ejemplo, si las entradas son:

1984
George Orwell
1949

La salida debería ser:

[1] "1984"
[1] 1949
$title
[1] "1984"

$author
[1] "George Orwell"

$year
[1] 1950

$available
[1] TRUE

Explicación:

  • book$title imprime el valor del título
  • book[["year"]] imprime el año original
  • El año se actualiza de 1949 a 1950
  • Se añade un nuevo elemento available con el valor TRUE

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 25

Accede 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 <- 26

Añ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 actualizada
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos