R dla pętli
Dla pętli
Pętla for
jest używana do iteracji po sekwencji:
Przykład
for (x in 1:10) {
print(x)
}
Jest to mniej podobne do for
słowa kluczowego w innych językach programowania i działa bardziej jak metoda iteracyjna, którą można znaleźć w innych językach programowania obiektowego.
Za pomocą for
pętli możemy wykonać zestaw instrukcji, raz dla każdego elementu w wektorze, tablicy, liście itp.
Przykład
Wydrukuj każdą pozycję na liście:
fruits <- list("apple", "banana", "cherry")
for (x in fruits) {
print(x)
}
Przykład
Wydrukuj liczbę kostek:
dice <- c(1, 2, 3, 4, 5, 6)
for (x in dice) {
print(x)
}
Pętla for
nie wymaga wcześniejszego ustawienia zmiennej indeksującej, jak w przypadku while
pętli.
Złamać
Za pomocą break
instrukcji możemy zatrzymać pętlę, zanim przejdzie ona przez wszystkie elementy:
Przykład
Zatrzymaj pętlę na "wiśnia":
fruits <- list("apple", "banana", "cherry")
for (x in fruits) {
if (x == "cherry") {
break
}
print(x)
}
Pętla zatrzyma się na "cherry", ponieważ zdecydowaliśmy się zakończyć pętlę za pomocą break
instrukcji when
x
jest równe "cherry" ( x ==
"cherry"
).
Następny
Za pomocą next
instrukcji możemy pominąć iterację bez przerywania pętli:
Przykład
Pomiń „banan”:
fruits <- list("apple", "banana", "cherry")
for (x in fruits) {
if (x == "banana") {
next
}
print(x)
}
Gdy pętla mija „banan”, pominie ją i będzie kontynuowała pętlę.
Jahtz!
Jeśli .. jeszcze w połączeniu z pętlą for
Aby zademonstrować praktyczny przykład, powiedzmy, że gramy w Yahtzee!
Przykład
Drukuj "Yahtzee!" Jeśli liczba kości to 6:
dice <- 1:6
for(x in dice) {
if (x == 6) {
print(paste("The dice number is", x, "Yahtzee!"))
} else {
print(paste("The dice number is", x, "Not Yahtzee"))
}
}
Jeśli pętla osiągnie wartości z zakresu od 1 do 5, wypisuje „No Yahtzee” i jego numer. Gdy osiągnie wartość 6, wypisuje „Yahtzee!” i jego numer.
Pętle zagnieżdżone
Możesz również mieć pętlę wewnątrz pętli:
Przykład
Wydrukuj przymiotnik każdego owocu z listy:
adj <- list("red", "big", "tasty")
fruits <- list("apple", "banana",
"cherry")
for (x in adj) {
for (y in fruits) {
print(paste(x, y))
}
}