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 50Ardışı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 40Negatif 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 50Negatif 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 40Unutma: aynı seçimde pozitif ve negatif indeksleri karıştıramazsın. numbers[c(1, -2)] ifadesini denersen R bir hata verecektir.
Görev
Kolayİki satır girdi alacaksınız:
- Sayıların virgülle ayrılmış bir listesi (ör.
100,200,300,400,500,600,700) - 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:
- Bir indeks vektörü kullanarak 1, 3 ve 5. konumlardaki öğeleri yazdırın
- İki nokta operatörünü kullanarak 2. konumdan 4. konuma kadar olan öğeleri yazdırın
- İlk verilen indeksteki öğenin hariç tutulduğu vektörü yazdırın (negatif indeksleme kullanarak)
- İ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 70Açı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)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
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