Menu
CoddyTech

Vektör Dilimleme ve İndeksleme

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

Tek tek öğelere nasıl erişeceğinizi ve vektörler üzerinde nasıl yineleme yapacağınızı öğrendiniz. Şimdi dilimleme kullanarak aynı anda birden çok öğeyi nasıl çıkaracağınızı keşfedelim. Bu teknik, tek bir işlemle bir vektörün bir alt kümesini almanızı sağlar.

Birden fazla öğeyi çıkarmak için köşeli parantezlerin içine bir dizin vektörü aktarın:

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

Çıktı:

[1] 10 30 50

Ardışık öğelerden oluşan bir aralık seçmek için iki nokta üst üste işleçini de kullanabilirsiniz:

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

Çıktı:

[1] 20 30 40

Negatif indeksler R'de güçlüdür. Öğeleri 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 ileterek birden çok öğeyi hariç tutabilirsiniz:

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

Çıktı:

[1] 20 30 40

Unutma: aynı seçimde pozitif ve negatif indeksleri karıştıramazsın. numbers[c(1, -2)] ifadesini denersen R bir hata verecektir.

challenge icon

Görev

Kolay

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

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

Başlangıç kodu girdiyi zaten okur ve sayısal vektörü oluşturur. Tam olarak dört satırı, aşağıdaki sırayla yazdırı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. İlk verilen indeksteki öğenin hariç tutulduğu vektörü yazdırın (negatif indeksleme kullanarak)
  4. İlk indeksten ikinci indekse kadar olan öğelerin hariç tutulduğu 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 öğeler: 10, 30, 50
  • 2. konumdan 4. konuma kadar olan öğeler: 20, 30, 40
  • 3. konumun hariç tutulması: 10, 20, 40, 50, 60, 70
  • 3 ile 5. konumlar arasındaki öğelerin 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 ayrış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. İndeks vektörü kullanarak 1, 3 ve 5. konumdaki öğeleri yazdır

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

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

# 4. idx1'den idx2'ye kadar olan öğeler hariç tutularak vektörü yazdır (aralıklı 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.

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Online R derleyicisi