Перейти до основного вмісту
Модуль 2 · Урок 2 із 24/10 у курсі~12 min
Модульні уроки (2/2)

Умови та цикли

Щоб реалізувати складні алгоритми та процедури в R, вам потрібно мати можливість контролювати, які інструкції виконувати та скільки разів їх повторювати.

Умовні оператори

У R фундаментальна умовна структура базується на if і else. Синтаксис дуже схожий на такі мови, як JavaScript або C:

R
score <- 85

if (score >= 60) {
  print("Passed!")
} else {
  print("Failed.")
}

Фігурні дужки {} визначають блоки коду для запуску залежно від результату логічного виразу в дужках.

Петля for

Цикл for в R використовується для повторення елементів у послідовності (таких як вектор або список).

R
# Print numbers from 1 to 3
for (i in 1:3) {
  print(i)
}

У R синтаксис 1:3 є скороченим способом створення вектора c(1, 2, 3).

Ми також можемо перейти безпосередньо до елементів існуючого вектора:

R
fruits <- c("apple", "banana", "cherry")

for (fruit in fruits) {
  print(fruit)
}

Функція ifelse

У R функція ifelse() є векторизованою версією оператора if-else. Це дозволяє застосувати умову до всього вектора за одну операцію, повертаючи вектор результатів.

R
scores <- c(55, 80, 45, 90)
# Se score >= 60 assegna "Pass", altrimenti "Fail"
results <- ifelse(scores >= 60, "Pass", "Fail")
print(results) # "Fail" "Pass" "Fail" "Pass"

Петля while

Цикл while використовується для повторення блоку коду, доки виконується певна умова (TRUE). Важливо переконатися, що умова зрештою стає помилковою, щоб запобігти нескінченним циклам.

R
counter <- 1
while (counter <= 3) {
  print(counter)
  counter <- counter + 1
}

Спробуйте самі

вправи#r.m2.l2.e1
Спроби: 0Завантаження…

Напишіть умовний оператор if-else, який перевіряє, чи оцінка змінної перевищує або дорівнює 60. Якщо так, встановіть статус «Пройшов», інакше встановіть для нього значення «Не пройшов».

Завантаження редактора…
Показати підказку

Оцінка верифікації >= 60 і присвоєний статус <- «Здав» або статус <- «Не пройшов»

Рішення доступне після 3 спроб

вправи#r.m2.l2.e2
Спроби: 0Завантаження…

Напишіть цикл for, який повторює послідовність 1:5 і друкує кожне значення за допомогою функції print().

Завантаження редактора…
Показати підказку

Usa la sintassi: for (i in 1:5) { print(i) }

Рішення доступне після 3 спроб

вправи#r.m2.l2.e3
Спроби: 0Завантаження…

Маючи вектор v, напишіть цикл for, який повторює кожен елемент і друкує його подвійне значення (val * 2) за допомогою print().

Завантаження редактора…
Показати підказку

Перебір елементів v: for (val in v) { print(val * 2) }

Рішення доступне після 3 спроб

вправи#r.m2.l2.e4
Спроби: 0Завантаження…

Враховуючи векторні оцінки, скористайтеся функцією ifelse(), щоб перевірити, які елементи більше або дорівнюють 60. Збережіть результат (який міститиме «Пройшов» або «Не пройшов» для кожного елемента) у змінній результати.

Завантаження редактора…
Показати підказку

Скористайтеся функцією: результати <- ifelse(оцінки >= 60, «Пройшов», «Не пройшов»)

Рішення доступне після 3 спроб

вправи#r.m2.l2.e5
Спроби: 0Завантаження…

Використовуйте цикл while, щоб подвоїти значення x, поки воно не перевищить 50. Також збільшуйте змінну лічильника на кожній ітерації.

Завантаження редактора…
Показати підказку

Використовуйте цикл while (x <= 50) і оновлюйте як x, так і лічильник у фігурних дужках.

Рішення доступне після 3 спроб