Vektör Elemanları Üzerinde Yineleme
Coddy'nin R Journey'sinin Temeller bölümünün bir parçası — ders 63 / 78.
R'nin vektörleştirilmiş işlemleri güçlü olsa da, bazen her bir öğeyi özel bir mantıkla tek tek işlemeniz gerekir. Bir for döngüsü, vektör öğeleri üzerinde tek tek gezinmenizi sağlar.
Bir vektör içinde döngü kurmanın en basit yolu, doğrudan elemanları üzerinde yineleme yapmaktır:
fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
print(fruit)
}Çıktı:
[1] "apple"
[1] "banana"
[1] "cherry"Her yinelemede, fruit döngü değişkeni vektördeki bir sonraki öğenin değerini alır. Bu yaklaşım, yalnızca değerlerin kendisine ihtiyaç duyduğunuzda temiz ve okunabilirdir.
Öğeleri seçici bir şekilde işlemek için yinelemeyi koşullu mantıkla birleştirebilirsiniz:
numbers <- c(3, 8, 2, 10, 5)
for (num in numbers) {
if (num > 5) {
print(num)
}
}Çıktı:
[1] 8
[1] 10Bu desen, her bir öğenin değerine bağlı olarak farklı işlemler uygulamanız gerektiğinde yararlıdır; bu, vektörleştirilmiş işlemlerin tek başına her zaman halledemeyeceği bir durumdur.
Görev
Kolayİki satırlık bir girdi alacaksınız:
- Virgülle ayrılmış bir sayı listesi (örneğin,
12,5,18,3,25,8,14) - Bir eşik değeri (örneğin,
10)
Vektör elemanları üzerinde yineleme yapmak için bir for döngüsü kullanarak:
- Virgülle ayrılmış sayılardan bir vektör oluşturun
- Vektördeki her bir eleman üzerinde döngü kurun
- Eşik değerinden büyük veya eşit olan her bir eleman için, o elemanı
print()kullanarak yazdırın
Örneğin, girdiler şunlar ise:
4,15,8,22,6,19,11
10Çıktı şu şekilde olmalıdır:
[1] 15
[1] 22
[1] 19
[1] 11Açıklama: Döngü her bir elemanı eşik değerine (10) göre kontrol eder. 15, 22, 19 ve 11 elemanlarının tamamı 10'dan büyük veya eşittir, bu nedenle yazdırılırlar. 4, 8 ve 6 elemanları atlanır.
Kopya kağıdı
Bir for döngüsü, vektör öğeleri üzerinde tek tek gezinmenize ve her bir öğeye özel mantık uygulamanıza olanak tanır.
Bir vektör üzerinde döngü kurmak için temel sözdizimi:
fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
print(fruit)
}Her yinelemede, döngü değişkeni vektördeki bir sonraki öğenin değerini alır.
Öğeleri seçici olarak işlemek için döngüleri koşullu mantıkla birleştirme:
numbers <- c(3, 8, 2, 10, 5)
for (num in numbers) {
if (num > 5) {
print(num)
}
}Bu desen, her bir öğenin değerine göre farklı işlemler uygulamanız gerektiğinde kullanışlıdır.
Kendin dene
# Girişi oku
con <- file("stdin", "r")
numbers_input <- suppressWarnings(readLines(con, n = 1))
threshold <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)
# Virgülle ayrılmış dizeyi sayısal vektöre dönüştür
numbers <- as.numeric(unlist(strsplit(numbers_input, ",")))
# TODO: Kodunuzu aşağıya yazın
# Sayılar vektörü boyunca yineleme yapmak için bir for döngüsü kullanın
# Eşik değerine (threshold) eşit veya büyük olan her öğeyi print() kullanarak yazdırınBu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Operatörler Bölüm 2
Mantıksal Operatörler (AND, OR)Mantıksal Operatörler Bölüm 2 (NOT)Özet - Basit MantıkVektörize Mantık Bölüm 1Vektörize Mantık Bölüm 27Hesap Paylaşım Hesaplayıcısı
Hoş Geldiniz MesajıKullanıcıdan Girdi Alma10Farklı Bir FizzBuzz
Oyuna Genel BakışFizzBuzz Fonksiyonu2Değişkenler ve Veri Tipleri
Sayısal Veri TipiTam Sayı Veri TipiKarakter Veri TipiMantıksal Veri TipiVeri Tiplerini Kontrol Etmeİsimlendirme KurallarıEksik Değerler: NAÖzet - Değişken Oluşturma8Döngüler
For DöngüsüWhile DöngüsüBreakNext (Continue)Özet - FaktöriyelDizi Oluşturma (seq, :)İç İçe DöngülerÖzet - Dinamik Girdi3Operatörler 1. Bölüm
Aritmetik OperatörlerTam Sayı Bölmesi ve Mod AlmaAtama OperatörleriÖzet - Basit MatematikKarşılaştırma Operatörleri6Temel Giriş-Çıkış
Print ÇıktısıÇıktı için Cat KullanımıDeğişkenlerle Çıktı Almakreadline() ile Girdi OkumaTip Dönüşümü TemelleriÖzet - Yaş HesaplayıcıÖzet - Doğru mu Yanlış mı9Fonksiyonlar
Fonksiyon TanımlamaFonksiyon ArgümanlarıDönüş DeğerleriÖzet - Sigma FonksiyonuÖzet - Doğrulama FonksiyonuVarsayılan Parametre Değerleri12Diziler Üzerinde Yineleme
Vektör Elemanları Üzerinde Yinelemeseq_along() KullanımıKarakterler Üzerinde Yineleme (strsplit)String Manipülasyon Fonksiyonları