Menu
Coddy logo textTech

Vektör Dilimleme ve İndeksleme

Coddy'nin R Journey'sinin Temeller bölümünün bir parçası. Ders 67 / 78.

Tekil öğelere nasıl erişeceğinizi ve vektörler üzerinde nasıl döngü kuracağınızı öğrendiniz. Şimdi dilimleme (slicing) kullanarak aynı anda birden fazla öğeyi nasıl çıkaracağımızı keşfedelim. Bu teknik, tek bir işlemde bir vektörün alt kümesini almanızı sağlar.

Birden fazla öğeyi çıkarmak için, köşeli parantezlerin içine bir indeks vektörü iletin:

numbers <- c(10, 20, 30, 40, 50)
print(numbers[c(1, 3, 5)])

Çıktı:

[1] 10 30 50

Ardışık bir dizi öğeyi seçmek için iki nokta üst üste operatörünü de kullanabilirsiniz:

numbers <- c(10, 20, 30, 40, 50)
print(numbers[2:4])

Çıktı:

[1] 20 30 40

R'da negatif indeksler oldukça güçlüdür. Elemanları seçmek yerine hariç tutarlar:

numbers <- c(10, 20, 30, 40, 50)
print(numbers[-2])

Çıktı:

[1] 10 30 40 50

Negatif indekslerden oluşan bir vektör geçirerek birden fazla öğeyi hariç tutabilirsiniz:

numbers <- c(10, 20, 30, 40, 50)
print(numbers[-c(1, 5)])

Çıktı:

[1] 20 30 40

Unutmayın: Aynı seçimde pozitif ve negatif indeksleri karıştıramazsınız. numbers[c(1, -2)] kodunu denerseniz R bir hata verecektir.

challenge icon

Görev

Kolay

İki satır girdi alacaksınız:

  1. Sayıların virgülle ayrılmış listesi (örneğin, 100,200,300,400,500,600,700)
  2. Hariç tutulacak aralığı temsil eden, virgülle ayrılmış iki indeks (örneğin, 2,5)

Aşağıdaki işlemleri gerçekleştirin:

  1. Virgülle ayrılmış sayılardan sayısal bir vektör oluşturun
  2. Bir indeks vektörü kullanarak 1., 3. ve 5. konumlardaki ögeleri yazdırın
  3. İki nokta üst üste operatörünü kullanarak 2. konumdan 4. konuma kadar olan ögeleri yazdırın
  4. İlk verilen indisteki öge hariç vektörü yazdırın (negatif indeksleme kullanarak)
  5. Birinci indisten ikinci indise kadar olan ögeler hariç vektörü yazdırın (aralıkla negatif indeksleme kullanarak)

Örneğin, girdiler şöyleyse:

10,20,30,40,50,60,70
3,5

Çıktı şöyle olmalıdır:

[1] 10 30 50
[1] 20 30 40
[1] 10 20 40 50 60 70
[1] 10 20 60 70

Açıklama:

  • 1., 3. ve 5. konumlardaki ögeler: 10, 30, 50
  • 2. konumdan 4. konuma kadar olan ögeler: 20, 30, 40
  • 3. konumun hariç tutulması: 10, 20, 40, 50, 60, 70
  • 3. konumdan 5. konuma kadar olan konumların hariç tutulması: 10, 20, 60, 70

Kendin dene

# Girdiyi oku
con <- file("stdin", "r")
numbers_input <- suppressWarnings(readLines(con, n = 1))
indices_input <- suppressWarnings(readLines(con, n = 1))
close(con)

# Virgülle ayrılmış sayıları sayısal bir vektöre dönüştür
numbers <- as.numeric(strsplit(numbers_input, ",")[[1]])

# İki indeksi ayrıştır
indices <- as.numeric(strsplit(indices_input, ",")[[1]])
idx1 <- indices[1]
idx2 <- indices[2]

# TODO: Kodunuzu aşağıya yazın
# 1. Bir indeks vektörü kullanarak 1, 3 ve 5. konumlardaki öğeleri yazdırın

# 2. İki nokta operatörünü kullanarak 2. konumdan 4. konuma kadar olan öğeleri yazdırın

# 3. idx1 konumundaki öğe hariç tutulmuş vektörü yazdırın (negatif indeksleme)

# 4. idx1 ile idx2 arasındaki öğeler hariç tutulmuş vektörü yazdırın (aralıkla negatif indeksleme)
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

Kendi başına pratik yap: Online R derleyicisi