seq_along() Kullanımı
Coddy'nin R Journey'sinin Temeller bölümünün bir parçası — ders 64 / 78.
Bazen hem elemanın değerine hem de vektördeki konumuna ihtiyaç duyarsınız. Doğrudan elemanlar üzerinde yineleme yapmak temiz bir yöntem olsa da, dizine (index) erişim sağlamaz. seq_along() fonksiyonu, herhangi bir vektör için bir dizin dizisi oluşturarak bu sorunu çözer.
seq_along() fonksiyonu, 1'den vektörün uzunluğuna kadar bir dizi döndürür:
fruits <- c("apple", "banana", "cherry")
print(seq_along(fruits))Çıktı:
[1] 1 2 3Bu dizinler üzerinde döngü kurarak hem konuma hem de değere erişebilirsiniz:
fruits <- c("apple", "banana", "cherry")
for (i in seq_along(fruits)) {
cat(i, ":", fruits[i], "\n")
}Çıktı:
1 : apple
2 : banana
3 : cherryBu yaklaşım, özellikle belirli konumlardaki öğeleri değiştirmeniz veya öğeleri komşularıyla karşılaştırmanız gerektiğinde yararlıdır. seq_along() kullanmak, boş vektörleri doğru bir şekilde işlediği ve 1:0 yerine boş bir dizi döndürdüğü için 1:length(vec) kullanmaktan daha güvenlidir.
Görev
KolayVirgülle ayrılmış sayılar içeren tek bir giriş satırı alacaksınız (örneğin, 10,20,30,40,50).
Vektör üzerinde indekslerle yineleme yapmak için seq_along() fonksiyonunu kullanarak:
- Virgülle ayrılmış girişten bir vektör oluşturun
- Hem indeksi hem de değeri elde etmek için
seq_along()kullanarak vektör boyunca döngü kurun - Her eleman için indeksi, değeri ve o noktaya kadar olan kümülatif toplamı (1. pozisyondan mevcut pozisyona kadar olan tüm elemanların toplamı) yazdırın
Şu formatta cat() kullanın: Position X: VALUE (Running total: TOTAL) ve ardından bir yeni satır karakteri ekleyin.
Örneğin, giriş şu şekildeyse:
5,10,15,20Çıktı şu şekilde olmalıdır:
Position 1: 5 (Running total: 5)
Position 2: 10 (Running total: 15)
Position 3: 15 (Running total: 30)
Position 4: 20 (Running total: 50)Açıklama: 1. pozisyonda değer 5 ve yürüyen toplam 5'tir. 2. pozisyonda değer 10 ve yürüyen toplam 5+10=15'tir. 3. pozisyonda değer 15 ve yürüyen toplam 5+10+15=30'dur ve bu şekilde devam eder.
İpucu: i pozisyonuna kadar olan kümülatif toplamı hesaplamak için sum(vector[1:i]) kullanın.
Kopya kağıdı
seq_along() fonksiyonu, 1'den bir vektörün uzunluğuna kadar olan bir dizin dizisi oluşturur:
fruits <- c("apple", "banana", "cherry")
print(seq_along(fruits))
# Output: [1] 1 2 3Hem dizine hem de değere erişmek için bir döngü içinde seq_along() kullanın:
fruits <- c("apple", "banana", "cherry")
for (i in seq_along(fruits)) {
cat(i, ":", fruits[i], "\n")
}
# Output:
# 1 : apple
# 2 : banana
# 3 : cherryseq_along() kullanmak 1:length(vec) kullanmaktan daha güvenlidir çünkü boş vektörleri doğru şekilde işler ve 1:0 yerine boş bir dizi döndürür.
Kendin dene
# Girdiyi oku
con <- file("stdin", "r")
input_line <- suppressWarnings(readLines(con, n = 1))
close(con)
# Virgülle ayrılmış dizeyi sayısal vektöre dönüştür
numbers <- as.numeric(strsplit(input_line, ",")[[1]])
# YAPILACAK: Kodunuzu aşağıya yazın
# Vektör üzerinde döngü kurmak için seq_along() kullanın
# Her konum için indeksi, değeri ve yürüyen toplamı yazdırın
# cat() fonksiyonunu şu formatla kullanın: Position X: VALUE (Running total: TOTAL)\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ı