Модульні уроки (2/2)
Умови та цикли
Щоб реалізувати складні алгоритми та процедури в R, вам потрібно мати можливість контролювати, які інструкції виконувати та скільки разів їх повторювати.
Умовні оператори
У R фундаментальна умовна структура базується на if і else. Синтаксис дуже схожий на такі мови, як JavaScript або C:
score <- 85
if (score >= 60) {
print("Passed!")
} else {
print("Failed.")
}Фігурні дужки {} визначають блоки коду для запуску залежно від результату логічного виразу в дужках.
Петля for
Цикл for в R використовується для повторення елементів у послідовності (таких як вектор або список).
# Print numbers from 1 to 3
for (i in 1:3) {
print(i)
}У R синтаксис 1:3 є скороченим способом створення вектора c(1, 2, 3).
Ми також можемо перейти безпосередньо до елементів існуючого вектора:
fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
print(fruit)
}Функція ifelse
У R функція ifelse() є векторизованою версією оператора if-else. Це дозволяє застосувати умову до всього вектора за одну операцію, повертаючи вектор результатів.
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). Важливо переконатися, що умова зрештою стає помилковою, щоб запобігти нескінченним циклам.
counter <- 1
while (counter <= 3) {
print(counter)
counter <- counter + 1
}Спробуйте самі
Напишіть умовний оператор if-else, який перевіряє, чи оцінка змінної перевищує або дорівнює 60. Якщо так, встановіть статус «Пройшов», інакше встановіть для нього значення «Не пройшов».
Показати підказку
Оцінка верифікації >= 60 і присвоєний статус <- «Здав» або статус <- «Не пройшов»
Рішення доступне після 3 спроб
Напишіть цикл for, який повторює послідовність 1:5 і друкує кожне значення за допомогою функції print().
Показати підказку
Usa la sintassi: for (i in 1:5) { print(i) }
Рішення доступне після 3 спроб
Маючи вектор v, напишіть цикл for, який повторює кожен елемент і друкує його подвійне значення (val * 2) за допомогою print().
Показати підказку
Перебір елементів v: for (val in v) { print(val * 2) }
Рішення доступне після 3 спроб
Враховуючи векторні оцінки, скористайтеся функцією ifelse(), щоб перевірити, які елементи більше або дорівнюють 60. Збережіть результат (який міститиме «Пройшов» або «Не пройшов» для кожного елемента) у змінній результати.
Показати підказку
Скористайтеся функцією: результати <- ifelse(оцінки >= 60, «Пройшов», «Не пройшов»)
Рішення доступне після 3 спроб
Використовуйте цикл while, щоб подвоїти значення x, поки воно не перевищить 50. Також збільшуйте змінну лічильника на кожній ітерації.
Показати підказку
Використовуйте цикл while (x <= 50) і оновлюйте як x, так і лічильник у фігурних дужках.
Рішення доступне після 3 спроб