Menu
Coddy logo textTech

Vektörize Mantık Bölüm 2

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

AND ve OR'un vektörleştirilmiş sürümleri olduğu gibi, NOT operatörü de vektörler üzerinde eleman bazında çalışır. ! işlecini mantıksal değerlerden oluşan bir vektöre uyguladığında, her bir elemanı ayrı ayrı tersine çevirir.

passed <- c(TRUE, FALSE, TRUE, FALSE)
!passed  # FALSE TRUE FALSE TRUE

Her TRUE, FALSE olur ve her FALSE, TRUE olur. Bu, belirli bir koşulu karşılamayan öğeleri bulmak istediğinizde özellikle kullanışlıdır:

temperatures <- c(18, 25, 30, 15, 22)

# 20'nin üzerinde OLMAYAN sıcaklıkları bul
!(temperatures > 20)  # TRUE FALSE FALSE TRUE FALSE

Karmaşık filtreler oluşturmak için vektörleştirilmiş NOT işlemini & ve | ile birleştirebilirsin:

ages <- c(16, 25, 18, 30, 14)
has_permission <- c(TRUE, TRUE, FALSE, TRUE, TRUE)

# Katılabilir eğer: age >= 18 OR (18 yaşından küçük AND has permission)
can_participate <- ages >= 18 | (ages < 18 & has_permission)
# TRUE TRUE FALSE TRUE TRUE

Unutma: vektörlerle çalışırken tek &, | ve ! kullan; tek değerleri karşılaştırırken çift &&, || kullan.

challenge icon

Görev

Kolay

Karmaşık öğe bazlı mantıksal koşullar oluşturmak için vektörleştirilmiş NOT operatörünü (!), & ve | ile birlikte kullanın.

Aşağıdaki vektörler size sağlanmıştır:

scores <- c(45, 72, 88, 55, 91, 38, 67)
attended <- c(TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE)
submitted_homework <- c(TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE)

Aşağıdaki mantıksal vektörleri oluşturmak için NOT operatörü de dahil olmak üzere vektörleştirilmiş mantıksal operatörleri kullanın:

  1. 60'tan büyük veya eşit OLMAYAN her skor için TRUE değeri depolayan failed adlı bir vektör oluşturun
  2. attended vektörünün tersini (her değeri tersine çevirerek) depolayan absent adlı bir vektör oluşturun
  3. Derse katılMAYAN VEYA ödev teslim etMEYEN her öğrenci için TRUE değeri depolayan at_risk adlı bir vektör oluşturun
  4. Skoru 60'tan büyük veya eşit olan VE derse katılMAYAN her öğrenci için TRUE değeri depolayan passing_but_absent adlı bir vektör oluşturun
  5. Şu koşulu sağlayan her öğrenci için TRUE değeri depolayan needs_support adlı bir vektör oluşturun: (skor 50'den küçüktür) VEYA (derse katılMADI VE ödev teslim etMEDİ)

failed, absent, at_risk, passing_but_absent ve needs_support değerlerini tam olarak bu sırayla görüntülemek için print() işlevini kullanın.

Kendin dene

# Verilen vektörler
scores <- c(45, 72, 88, 55, 91, 38, 67)
attended <- c(TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE)
submitted_homework <- c(TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE)

# TODO: Kodunuzu aşağıya yazın
# 1. 'failed' oluştur - scores NOT >= 60 için TRUE

# 2. 'absent' oluştur - attended'ın zıttı

# 3. 'at_risk' oluştur - NOT attended OR NOT submitted homework

# 4. 'passing_but_absent' oluştur - score >= 60 AND NOT attended

# 5. 'needs_support' oluştur - (score < 50) OR (NOT attended AND NOT submitted homework)

# Sonuçları yazdır
print(failed)
print(absent)
print(at_risk)
print(passing_but_absent)
print(needs_support)
quiz iconKendini test et

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

Kendi başına pratik yap: Online R derleyicisi