Генерация последовательностей (seq, :)
Часть раздела Основы путешествия по R на Coddy — урок 43 из 78.
Вы использовали 1:5 для создания последовательностей в ваших циклах. Этот оператор двоеточия быстр и прост, но R также предоставляет функцию seq() для большего контроля над вашими последовательностями.
Оператор двоеточия создает последовательность идущих подряд целых чисел:
print(1:5)
print(10:6)Вывод:
[1] 1 2 3 4 5
[1] 10 9 8 7 6Обратите внимание, что последовательность может идти в любом направлении. Когда первое число больше, она ведет обратный отсчет.
Функция seq() дает вам больше гибкости. Вы можете указать размер шага, используя аргумент by:
print(seq(2, 10, by = 2))Вывод:
[1] 2 4 6 8 10Это создает четные числа от 2 до 10.
Вы также можете указать, сколько чисел вам нужно, используя length.out:
print(seq(1, 10, length.out = 4))Вывод:
[1] 1 4 7 10R автоматически вычисляет интервалы, чтобы получить ровно 4 числа, расположенных на равном расстоянии друг от друга. Оба подхода бесшовно работают в циклах, позволяя вам с легкостью перебирать пользовательские последовательности.
Задание
ЛегкоПрочитайте три числа из входных данных: start, end и step.
Используйте функцию seq() для генерации последовательности от start до end с заданным размером step. Затем используйте цикл for для итерации по этой последовательности и выведите квадрат каждого числа.
Каждое возведенное в квадрат значение должно быть выведено на отдельной строке с помощью print().
Например, если входные данные — 2, 10 и 2, результат должен быть следующим:
[1] 4
[1] 16
[1] 36
[1] 64
[1] 100Это связано с тем, что генерируется последовательность 2, 4, 6, 8, 10, и каждое число возводится в квадрат.
Шпаргалка
Оператор двоеточия : создает последовательности идущих подряд целых чисел:
1:5 # создает 1 2 3 4 5
10:6 # создает 10 9 8 7 6 (обратный отсчет)Функция seq() предоставляет больше возможностей для управления последовательностями:
# Укажите размер шага с помощью 'by'
seq(2, 10, by = 2) # создает 2 4 6 8 10
# Укажите количество значений с помощью 'length.out'
seq(1, 10, length.out = 4) # создает 1 4 7 10Как оператор двоеточия, так и seq() работают в циклах for:
for (i in seq(2, 10, by = 2)) {
print(i)
}Попробуйте сами
# Чтение входных данных
con <- file("stdin", "r")
start <- as.numeric(suppressWarnings(readLines(con, n = 1)))
end <- as.numeric(suppressWarnings(readLines(con, n = 1)))
step <- as.numeric(suppressWarnings(readLines(con, n = 1)))
# TODO: Напишите свой код ниже
# 1. Используйте seq() для генерации последовательности от start до end с заданным шагом step
# 2. Используйте цикл for для итерации по последовательности
# 3. Выведите квадрат каждого числа, используя print()В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 2
Логические операторы (AND, OR)Логические операторы. Часть 2 (NOT)Повторение: простая логикаВекторизованная логика. Часть 1Векторизованная логика. Часть 27Калькулятор разделения счета
Приветственное сообщениеПолучение пользовательского ввода13Векторы: продвинутый уровень
Срезы и индексация векторовЛогическая индексацияАрифметика и ресайклинг векторовОператор %in%2Переменные и типы данных
Числовой тип данныхЦелочисленный тип данныхСимвольный тип данныхЛогический тип данныхПроверка типов данныхПравила именованияПропущенные значения: NAИтоги — создание переменных5Принятие решений
Оператор ifКонструкция if - elseПовторение: Простой калькуляторВложенные конструкции if - else8Циклы
Цикл ForЦикл WhileBreakNext (Continue)Повторение: ФакториалГенерация последовательностей (seq, :)Вложенные циклыПовторение: Динамический ввод3Операторы. Часть 1
Арифметические операторыЦелочисленное деление и остаток от деленияОператоры присваиванияПовторение: простая математикаОператоры сравнения6Основы ввода-вывода
Вывод через printКоманда cat для выводаВывод с переменнымиЧтение ввода через readline()Основы преобразования типовПовторение — Калькулятор возрастаПовторение — Истина или ложь9Функции
Объявление функцииАргументы функцииВозвращаемые значенияПовторение — функция SigmaПовторение — функция валидацииЗначения параметров по умолчанию12Итерация по последовательностям
Итерация по элементам вектораИспользование seq_along()Итерация по символам (strsplit)Функции для работы со строками