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 50Ardışı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 40R'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 50Negatif 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 40Unutmayın: Aynı seçimde pozitif ve negatif indeksleri karıştıramazsınız. numbers[c(1, -2)] kodunu denerseniz R bir hata verecektir.
Görev
Kolayİki satır girdi alacaksınız:
- Sayıların virgülle ayrılmış listesi (örneğin,
100,200,300,400,500,600,700) - Hariç tutulacak aralığı temsil eden, virgülle ayrılmış iki indeks (örneğin,
2,5)
Aşağıdaki işlemleri gerçekleştirin:
- Virgülle ayrılmış sayılardan sayısal bir vektör oluşturun
- Bir indeks vektörü kullanarak 1., 3. ve 5. konumlardaki ögeleri yazdırın
- İki nokta üst üste operatörünü kullanarak 2. konumdan 4. konuma kadar olan ögeleri yazdırın
- İlk verilen indisteki öge hariç vektörü yazdırın (negatif indeksleme kullanarak)
- 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 70Açı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)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
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 Fonksiyonu13İleri Seviye Vektörler
Vektör Dilimleme ve İndekslemeMantıksal İndekslemeVektör Aritmetiği ve Geri Dönüşüm%in% Operatörü2Değ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ğerleriKendi başına pratik yap: Online R derleyicisi