Menu
Coddy logo textTech

Iterowanie po elementach wektora

Część sekcji Podstawy ścieżki R w Coddy. Lekcja 63 z 78.

Chociaż operacje wektorowe R są potężne, czasami trzeba przetwarzać każdy element osobno, stosując własną logikę. Pętla for pozwala iterować po elementach tablicy pojedynczo.

Najprostszym sposobem na przejście przez wektor jest bezpośrednie iterowanie po jego elementach:

fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
  print(fruit)
}

Wynik:

[1] "apple"
[1] "banana"
[1] "cherry"

W każdej iteracji zmienna pętli fruit przyjmuje wartość kolejnego elementu wektora. To podejście jest przejrzyste i czytelne, gdy potrzebujesz tylko samych wartości.

Możesz łączyć iterację z logiką warunkową, aby przetwarzać wybrane elementy:

numbers <- c(3, 8, 2, 10, 5)
for (num in numbers) {
  if (num > 5) {
    print(num)
  }
}

Wynik:

[1] 8
[1] 10

Ten wzorzec jest przydatny, gdy trzeba zastosować różne operacje w zależności od wartości każdego elementu — czego nie zawsze można zrobić za pomocą samych operacji wektoryzowanych.

challenge icon

Wyzwanie

Łatwy

Otrzymasz dwa wiersze danych wejściowych:

  1. Listę liczb rozdzielonych przecinkami (np. 12,5,18,3,25,8,14)
  2. Wartość progową (np. 10)

Użyj pętli for, aby iterować po elementach wektora:

  1. Utwórz wektor z liczb rozdzielonych przecinkami
  2. Przejdź przez każdy element wektora
  3. Dla każdego elementu, który jest większy od lub równy wartości progowej, wypisz ten element za pomocą print()

Na przykład, jeśli dane wejściowe to:

4,15,8,22,6,19,11
10

Wynik powinien być następujący:

[1] 15
[1] 22
[1] 19
[1] 11

Wyjaśnienie: Pętla sprawdza każdy element w odniesieniu do wartości progowej (10). Elementy 15, 22, 19 i 11 są większe od lub równe 10, więc zostają wypisane. Elementy 4, 8 i 6 są pomijane.

Spróbuj swoich sił

# Odczytaj dane wejściowe
con <- file("stdin", "r")
numbers_input <- suppressWarnings(readLines(con, n = 1))
threshold <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)

# Przekształć ciąg znaków rozdzielony przecinkami w wektor liczb
numbers <- as.numeric(unlist(strsplit(numbers_input, ",")))

# TODO: Napisz swój kod poniżej
# Użyj pętli for, aby przejść przez wektor numbers
# Dla każdego elementu >= threshold wypisz go za pomocą print()
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator R online