Именованные списки
Часть раздела Основы путешествия по 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"Задание
ЛегкоВы получите три строки входных данных:
- Название книги (например,
The Great Gatsby) - Автор книги (например,
F. Scott Fitzgerald) - Год публикации (например,
1925)
Выполните следующие операции:
- Создайте именованный список с именем
book, состоящий из трех элементов:title,authorиyear(преобразуйте год в числовой формат) - Выведите название книги, используя оператор
$ - Выведите год издания книги, используя двойные скобки с именем в виде строки
- Обновите
year, увеличив его на 1 год, используя оператор$ - Добавьте новый элемент с именем
availableсо значениемTRUE - Выведите полный обновленный список
Например, если входные данные следующие:
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. Выведите весь обновленный списокВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 2
Логические операторы (AND, OR)Логические операторы. Часть 2 (NOT)Повторение: простая логикаВекторизованная логика. Часть 1Векторизованная логика. Часть 27Калькулятор разделения счета
Приветственное сообщениеПолучение пользовательского ввода13Векторы: продвинутый уровень
Срезы и индексация векторовЛогическая индексацияАрифметика и ресайклинг векторовОператор %in%2Переменные и типы данных
Числовой тип данныхЦелочисленный тип данныхСимвольный тип данныхЛогический тип данныхПроверка типов данныхПравила именованияПропущенные значения: NAИтоги — создание переменных5Принятие решений
Оператор ifКонструкция if - elseПовторение: Простой калькуляторВложенные конструкции if - else8Циклы
Цикл ForЦикл WhileBreakNext (Continue)Повторение: ФакториалГенерация последовательностей (seq, :)Вложенные циклыПовторение: Динамический ввод11Векторы
Создание векторов с помощью c()Доступ к элементам вектораИзменение векторовОперации с векторамиПовторение — Вектор ценПовторение — Обратный векторИменованные векторы14Списки в R
Создание списковДоступ к элементам спискаИзменение списковИменованные спискиПовторение — Список продуктов3Операторы. Часть 1
Арифметические операторыЦелочисленное деление и остаток от деленияОператоры присваиванияПовторение: простая математикаОператоры сравнения6Основы ввода-вывода
Вывод через printКоманда cat для выводаВывод с переменнымиЧтение ввода через readline()Основы преобразования типовПовторение — Калькулятор возрастаПовторение — Истина или ложь9Функции
Объявление функцииАргументы функцииВозвращаемые значенияПовторение — функция SigmaПовторение — функция валидацииЗначения параметров по умолчанию12Итерация по последовательностям
Итерация по элементам вектораИспользование seq_along()Итерация по символам (strsplit)Функции для работы со строками