Vektörize Mantık Bölüm 1
Coddy'nin R Journey'sinin Temeller bölümünün bir parçası — ders 20 / 78.
R'da VE (AND) ve VEYA (OR) operatörlerinin iki versiyonu bulunur. Tek değerlerle çalışan && ve || operatörlerini öğrendiniz. Şimdi bunların vektörleştirilmiş karşılıklarını inceleyelim: & ve | (tek semboller).
Temel fark, birden fazla değerle çalışırken & ve | operatörlerinin değerleri öğe öğe karşılaştırmasıdır:
a <- c(TRUE, TRUE, FALSE, FALSE)
b <- c(TRUE, FALSE, TRUE, FALSE)
a & b # TRUE FALSE FALSE FALSE
a | b # TRUE TRUE TRUE FALSEHer konum bağımsız olarak karşılaştırılır. İlk konumda, hem a hem de b TRUE değerindedir, bu nedenle a & b TRUE döndürür. İkinci konumda, a TRUE ancak b FALSE değerindedir, bu nedenle a & b FALSE döndürür.
Bu, karşılaştırma operatörleri ile birleştirildiğinde güçlü hale gelir:
scores <- c(85, 42, 91, 67, 55)
# 50 ile 80 arasındaki puanları kontrol edin
scores >= 50 & scores <= 80 # FALSE FALSE FALSE TRUE TRUESonuç, hangi öğelerin her iki koşulu da karşıladığını gösteren mantıksal değerlerden oluşan bir vektördür. Bu eleman bazlı (element-wise) davranış, R'da verileri filtrelemek ve analiz etmek için temeldir.
Görev
KolayVektörler üzerinde eleman bazlı karşılaştırmalar yapmak için vektörleştirilmiş VE (&) ve VEYA (|) operatörlerini kullanın.
Size aşağıdaki vektörler verilmiştir:
temperatures <- c(18, 25, 32, 15, 28, 35, 22)
humidity <- c(45, 80, 60, 30, 75, 85, 50)Aşağıdaki mantıksal vektörleri oluşturmak için vektörleştirilmiş mantıksal operatörleri kullanın:
- 20'den büyük veya eşit VE 30'dan küçük veya eşit olan her bir sıcaklık değeri için
TRUEdeğerini saklayancomfortable_tempadında bir vektör oluşturun - 70'ten büyük olan her bir nem değeri için
TRUEdeğerini saklayanhigh_humidityadında bir vektör oluşturun - Sıcaklığın 20 ile 30 arasında (dahil) VE nemin 60'tan küçük veya eşit olduğu her bir gün için
TRUEdeğerini saklayanpleasant_dayadında bir vektör oluşturun - Sıcaklığın 30'tan büyük VEYA nemin 80'den büyük olduğu her bir gün için
TRUEdeğerini saklayanextreme_weatheradında bir vektör oluşturun - Sıcaklığın 18'den küçük VEYA (sıcaklığın 30'dan büyük VE nemin 70'ten büyük) olduğu her bir gün için
TRUEdeğerini saklayanstay_insideadında bir vektör oluşturun
comfortable_temp, high_humidity, pleasant_day, extreme_weather ve stay_inside vektörlerini tam olarak bu sırayla görüntülemek için print() fonksiyonunu kullanın.
Kopya kağıdı
R'da VE (AND) ve VEYA (OR) operatörlerinin iki versiyonu bulunur:
&&ve||tekil değerlerle çalışır&ve|, değerleri eleman bazında karşılaştıran vektörleştirilmiş operatörlerdir
Vektörleştirilmiş & ve | operatörleri her bir konumu bağımsız olarak karşılaştırır:
a <- c(TRUE, TRUE, FALSE, FALSE)
b <- c(TRUE, FALSE, TRUE, FALSE)
a & b # TRUE FALSE FALSE FALSE
a | b # TRUE TRUE TRUE FALSEVektörleştirilmiş operatörler, karşılaştırma operatörleri ile birleştirildiğinde oldukça güçlüdür:
scores <- c(85, 42, 91, 67, 55)
# Hangi puanların 50 ile 80 arasında olduğunu kontrol et
scores >= 50 & scores <= 80 # FALSE FALSE FALSE TRUE TRUESonuç, hangi elemanların koşulları karşıladığını gösteren bir mantıksal değerler vektörüdür.
Kendin dene
# Sağlanan vektörler
temperatures <- c(18, 25, 32, 15, 28, 35, 22)
humidity <- c(45, 80, 60, 30, 75, 85, 50)
# TODO: Kodunuzu aşağıya yazın
# 1. comfortable_temp oluşturun: sıcaklık >= 20 VE sıcaklık <= 30 olduğunda TRUE
# 2. high_humidity oluşturun: nem > 70 olduğunda TRUE
# 3. pleasant_day oluşturun: sıcaklık 20-30 ARASINDA VE nem <= 60 olduğunda TRUE
# 4. extreme_weather oluşturun: sıcaklık > 30 VEYA nem > 80 olduğunda TRUE
# 5. stay_inside oluşturun: sıcaklık < 18 VEYA (sıcaklık > 30 VE nem > 70) olduğunda TRUE
# Sonuçları yazdırın
print(comfortable_temp)
print(high_humidity)
print(pleasant_day)
print(extreme_weather)
print(stay_inside)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 Fonksiyonu2Değ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ğerleri