Lekcje modułu (2/2)
Warunki i Pętle
Aby wdrażać złożone algorytmy i procedury w R, musisz być w stanie kontrolować, które instrukcje mają być wykonywane i ile razy mają być powtarzane.
Instrukcje Warunkowe
W R podstawowa struktura warunkowa opiera się na if i else. Składnia jest całkowicie zbliżona do języków takich jak JavaScript czy C:
score <- 85
if (score >= 60) {
print("Superato!")
} else {
print("Non superato.")
}
Nawiasy klamrowe {} określają bloki kodu do wykonania w zależności od wyniku wyrażenia logicznego w nawiasach okrągłych.
Pętla for
Pętla for w R jest używana do iteracji po elementach należących do sekwencji (takiej jak wektor lub lista).
# Wypisuje liczby od 1 do 3
for (i in 1:3) {
print(i)
}
W R zapis 1:3 to skrót do utworzenia wektora c(1, 2, 3).
Możemy również iterować bezpośrednio po elementach istniejącego wektora:
fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
print(fruit)
}
Funkcja ifelse
W R funkcja ifelse() to zwektoryzowana wersja konstrukcji if-else. Pozwala zastosować warunek do całego wektora w jednej operacji, zwracając wektor wyników.
scores <- c(55, 80, 45, 90)
# Jeśli score >= 60 przypisz "Pass", w przeciwnym razie "Fail"
results <- ifelse(scores >= 60, "Pass", "Fail")
print(results) # "Fail" "Pass" "Fail" "Pass"
Pętla while
Pętla while służy do powtarzania bloku kodu tak długo, jak określony warunek pozostaje prawdziwy (TRUE). Kluczowe jest upewnienie się, że warunek w pewnym momencie stanie się fałszywy, aby uniknąć nieskończonych pętli.
counter <- 1
while (counter <= 3) {
print(counter)
counter <- counter + 1
}
Spróbuj sam
Napisz strukturę warunkową if-else, która sprawdza, czy zmienna score jest większa lub równa 60. Jeśli tak, ustaw status na 'Pass', w przeciwnym razie ustaw go na 'Fail'.
Pokaż wskazówkę
Sprawdź score >= 60 i przypisz status <- 'Pass' lub status <- 'Fail'
Rozwiązanie dostępne po 3 próbach
Napisz pętlę for, która iteruje po sekwencji 1:5 i wypisuje każdą wartość za pomocą funkcji print().
Pokaż wskazówkę
Użyj składni: for (i in 1:5) { print(i) }
Rozwiązanie dostępne po 3 próbach
Dla danego wektora v, napisz pętlę for, która iteruje po każdym elemencie i wypisuje jego podwojoną wartość (val * 2) za pomocą print().
Pokaż wskazówkę
Przejdź przez elementy v: for (val in v) { print(val * 2) }
Rozwiązanie dostępne po 3 próbach
Dla danego wektora scores, użyj funkcji ifelse(), aby sprawdzić, które elementy są większe lub równe 60. Zapisz wynik (który będzie zawierał 'Pass' lub 'Fail' dla każdego elementu) w zmiennej results.
Pokaż wskazówkę
Użyj funkcji: results <- ifelse(scores >= 60, 'Pass', 'Fail')
Rozwiązanie dostępne po 3 próbach
Użyj pętli while, aby podwajać wartość x tak długo, aż przekroczy 50. Zwiększaj również zmienną counter przy każdej iteracji.
Pokaż wskazówkę
Użyj pętli while (x <= 50) i aktualizuj zarówno x, jak i counter wewnątrz nawiasów klamrowych.
Rozwiązanie dostępne po 3 próbach