Menu
Coddy logo textTech

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 3

Bu 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 : cherry

Bu 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.

challenge icon

Görev

Kolay

Virgü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:

  1. Virgülle ayrılmış girişten bir vektör oluşturun
  2. Hem indeksi hem de değeri elde etmek için seq_along() kullanarak vektör boyunca döngü kurun
  3. 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 3

Hem 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 : cherry

seq_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)\n
quiz iconKendini test et

Bu 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