R dla pętli


Dla pętli

Pętla forjest używana do iteracji po sekwencji:

Przykład

for (x in 1:10) {
  print(x)
}

Jest to mniej podobne do forsł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ą forpętli możemy wykonać zestaw instrukcji, raz dla każdego elementu w wektorze, tablicy, liście itp.

O listach , wektorach itp. dowiesz się w następnym rozdziale.

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 fornie wymaga wcześniejszego ustawienia zmiennej indeksującej, jak w przypadku whilepętli.


Złamać

Za pomocą breakinstrukcji 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ą breakinstrukcji when xjest równe "cherry" ( x == "cherry").


Następny

Za pomocą nextinstrukcji 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))
  }
}