Menu
Coddy logo textTech

Именованные списки

Часть раздела Основы путешествия по R на Coddy — урок 74 из 78.

Как и именованные векторы, списки могут иметь имена, присвоенные их элементам. Это делает ваш код более читаемым и позволяет обращаться к элементам по осмысленным меткам вместо числовых позиций.

Вы можете присваивать имена при создании списка:

person <- list(name = "Alice", age = 25, active = TRUE)
print(person)

Вывод:

$name
[1] "Alice"

$age
[1] 25

$active
[1] TRUE

Обратите внимание, что теперь в выводе отображается $name вместо [[1]]. Для доступа к именованным элементам используйте оператор $:

person <- list(name = "Alice", age = 25, active = TRUE)
print(person$age)

Вывод:

[1] 25

Вы также можете использовать двойные квадратные скобки с именем в виде строки, что полезно, когда имя хранится в переменной:

person <- list(name = "Alice", age = 25)
print(person[["name"]])

Вывод:

[1] "Alice"

Изменение именованных элементов работает точно так же. Используйте $, чтобы изменить существующие значения или добавить новые:

person <- list(name = "Alice", age = 25)
person$age <- 26
person$city <- "Paris"
print(person)

Вывод:

$name
[1] "Alice"

$age
[1] 26

$city
[1] "Paris"
challenge icon

Задание

Легко

Вы получите три строки входных данных:

  1. Название книги (например, The Great Gatsby)
  2. Автор книги (например, F. Scott Fitzgerald)
  3. Год публикации (например, 1925)

Выполните следующие операции:

  1. Создайте именованный список с именем book, состоящий из трех элементов: title, author и year (преобразуйте год в числовой формат)
  2. Выведите название книги, используя оператор $
  3. Выведите год издания книги, используя двойные скобки с именем в виде строки
  4. Обновите year, увеличив его на 1 год, используя оператор $
  5. Добавьте новый элемент с именем available со значением TRUE
  6. Выведите полный обновленный список

Например, если входные данные следующие:

1984
George Orwell
1949

Выходные данные должны быть:

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

$author
[1] "George Orwell"

$year
[1] 1950

$available
[1] TRUE

Объяснение:

  • book$title выводит значение заголовка
  • book[["year"]] выводит исходный год
  • Год обновляется с 1949 на 1950
  • Добавляется новый элемент available со значением TRUE

Шпаргалка

Элементам списков можно присваивать имена для лучшей читаемости и доступа по осмысленным меткам.

Создайте именованный список, присвоив имена при его создании:

person <- list(name = "Alice", age = 25, active = TRUE)

Обращайтесь к именованным элементам с помощью оператора $:

person$age  # Возвращает 25

Обращайтесь к именованным элементам, используя двойные квадратные скобки и имя в виде строки:

person[["name"]]  # Возвращает "Alice"

Изменение существующих именованных элементов:

person$age <- 26

Добавление новых именованных элементов:

person$city <- "Paris"

Попробуйте сами

# Чтение входных данных
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: Напишите ваш код ниже
# 1. Создайте именованный список под названием 'book' с элементами: title, author и year (преобразуйте year в числовой тип)
# 2. Выведите название книги (title), используя оператор $
# 3. Выведите год издания книги (year), используя двойные скобки с именем в виде строки
# 4. Обновите год, увеличив его на 1 год, используя оператор $
# 5. Добавьте новый элемент под названием 'available' со значением TRUE
# 6. Выведите весь обновленный список
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы