%in% Operatörü
Coddy'nin R Journey'sinin Temeller bölümünün bir parçası. Ders 70 / 78.
Bazen bir vektör içinde değerlerin var olup olmadığını kontrol etmeniz gerekir. %in% operatörü, eşleşen her öğe için TRUE ve aksi takdirde FALSE döndürerek üyelik testi yapmak için temiz bir yol sağlar.
Temel sözdizimi, soldaki değerlerin sağdaki vektörde bulunup bulunmadığını kontrol eder:
fruits <- c("apple", "banana", "cherry")
print("banana" %in% fruits)Çıktı:
[1] TRUEAynı anda birden fazla değeri de kontrol edebilirsiniz. Operatör, test edilen her bir değer için bir sonuç içeren mantıksal bir vektör döndürür:
fruits <- c("apple", "banana", "cherry")
check <- c("banana", "grape", "apple")
print(check %in% fruits)Çıktı:
[1] TRUE FALSE TRUEBu, %in% operatörünü filtreleme için mükemmel kılar. Mantıksal indeksleme ile birleştirildiğinde, belirli bir kümeye ait öğeleri ayıklayabilirsiniz:
numbers <- c(1, 5, 3, 8, 2, 9)
allowed <- c(1, 2, 3)
print(numbers[numbers %in% allowed])Çıktı:
[1] 1 3 2%in% operatörü, kullanıcı girişini doğrularken veya verileri önceden tanımlanmış kabul edilebilir değerler listesine göre filtrelerken özellikle yararlıdır.
Görev
KolayÜç satır girdi alacaksınız:
- Envanterinizdeki öğelerin virgülle ayrılmış listesi (ör.
apple,banana,milk,bread,eggs,cheese) - Alışveriş listenizdeki öğelerin virgülle ayrılmış listesi (ör.
milk,butter,eggs,juice) - İndirimde olan öğelerin virgülle ayrılmış listesi (ör.
bread,juice,yogurt)
%in% operatörünü kullanarak:
- Virgülle ayrılmış her girdiden karakter vektörleri oluşturun
- Alışveriş listesindeki hangi öğelerin envanterinizde zaten bulunduğunu kontrol edin ve mantıksal vektör sonucunu yazdırın
- Envanterinizde olmayan alışveriş listesi öğelerini (satın almanız gereken öğeleri) filtreleyin ve yazdırın
- Satın almanız gereken ve aynı zamanda indirimde olan öğeleri filtreleyin ve yazdırın
Örneğin girdiler şöyleyse:
apple,banana,milk,bread,eggs
milk,butter,eggs,juice,apple
bread,juice,yogurt,butterÇıktı şöyle olmalıdır:
[1] TRUE FALSE TRUE FALSE TRUE
[1] "butter" "juice"
[1] "butter" "juice"Açıklama:
- Alışveriş listesi envantere göre kontrol edildi: milk (TRUE), butter (FALSE), eggs (TRUE), juice (FALSE), apple (TRUE)
- Envanterde OLMAYAN öğeler (satın alınması gerekenler): butter, juice
- İndirimde olan satın alınacak öğeler: butter ve juice indirim listesinin ikisinde de bulunuyor
Bir vektörde OLMAYAN öğeleri bulmak için ! operatörünü %in% ile birlikte kullanın.
Kendin dene
# Girdiyi oku
con <- file("stdin", "r")
inventory_input <- suppressWarnings(readLines(con, n = 1))
shopping_list_input <- suppressWarnings(readLines(con, n = 1))
sale_items_input <- suppressWarnings(readLines(con, n = 1))
close(con)
# TODO: Kodunuzu aşağıya yazın
# 1. strsplit() kullanarak virgülle ayrılmış her girdiden karakter vektörleri oluşturun
# 2. Alışveriş listesindeki hangi ürünlerin envanterinizde zaten bulunduğunu kontrol edin (%in% kullanın)
# 3. Envanterinizde bulunmayan alışveriş listesi ürünlerini filtreleyin (%in% ile ! kullanın)
# 4. Satın almanız gereken ve aynı zamanda indirimde olan ürünleri filtreleyinBu 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