Mantıksal İşleçler ve Boolean Mantığı
Boolean işlemleri için &, |, !, xor(), any() ve all() ifadelerini anlayın.
Mantıksal İşleçler ve Boolean Mantığı, CoddyKit'te ücretsiz bir R Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, R Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. R Academy kursu toplamda 4 dersten oluşur.
Boolean Mantığına Giriş
Boolean mantığı, programlamada karar vermenin temelidir. R'de mantıksal değerler TRUE ve FALSE'dur. Mantıksal işleçler bu değerleri birleştirerek karmaşık koşullar oluşturur.
# Boolean values in R
is_raining <- TRUE
is_cold <- FALSE
cat('Is raining:', is_raining, '
')
cat('Is cold:', is_cold, '
')
cat('Class:', class(is_raining), '
')& ile Öğe Bazında AND
& işleci, vektörler üzerinde öğe bazında AND işlemi gerçekleştirir. Yalnızca karşılık gelen öğelerin her ikisi de TRUE olduğunda TRUE döndürür. Bir vektördeki her öğeyi işler.
ages <- c(15, 22, 17, 30, 19)
has_id <- c(FALSE, TRUE, FALSE, TRUE, TRUE)
# Can buy alcohol? (must be 18+ AND have ID)
can_buy <- (ages >= 18) & has_id
cat('Ages >= 18:', ages >= 18, '
')
cat('Has ID:', has_id, '
')
cat('Can buy:', can_buy, '
')| ile Öğe Bazında OR
| işleci, öğe bazında OR işlemi gerçekleştirir. Karşılık gelen öğelerden en az biri TRUE olduğunda TRUE döndürür.
scores_math <- c(85, 45, 72, 38, 90)
scores_english <- c(40, 88, 65, 70, 55)
# Pass if either subject >= 60
passes <- (scores_math >= 60) | (scores_english >= 60)
cat('Math pass:', scores_math >= 60, '
')
cat('English pass:', scores_english >= 60, '
')
cat('Overall pass:', passes, '
')! ile Mantıksal NOT
! işleci, mantıksal bir değerin tersini alır; TRUE değerini FALSE'a, FALSE değerini de TRUE'ya dönüştürür. Değerlendirme sırasına göre & ve | işleçlerinden önce uygulanır.
is_weekend <- c(TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE)
cat('Is weekend:', is_weekend, '
')
cat('Is weekday:', !is_weekend, '
')
# Count weekdays
cat('Number of weekdays:', sum(!is_weekend), '
')&& ile Skaler AND
&&, AND işleminin skaler sürümüdür; her vektörün yalnızca ilk öğesini değerlendirir ve kısa devre değerlendirmesi kullanır: sol taraf FALSE ise sağ taraf hiç değerlendirilmez.
x <- 10
# Short-circuit: second condition skipped if first is FALSE
if (x > 0 && x < 100) {
cat('x is a positive double-digit or less
')
}
# && only looks at first element
cat('TRUE && FALSE:', TRUE && FALSE, '
')
cat('TRUE & FALSE (vectorised):', TRUE & FALSE, '
')|| ile Skaler OR
||, kısa devre değerlendirmesine sahip OR işleminin skaler sürümüdür: sol taraf TRUE ise sağ taraf hiç değerlendirilmez. Yalnızca tek bir sonuca ihtiyaç duyduğunuz if ifadelerinde || kullanın.
user_role <- 'admin'
# Short-circuit OR — stops at first TRUE
if (user_role == 'admin' || user_role == 'superuser') {
cat('Access granted
')
} else {
cat('Access denied
')
}
cat('FALSE || TRUE:', FALSE || TRUE, '
')xor() ile Özel OR
xor(x, y), x veya y değerlerinden tam olarak biri TRUE olduğunda TRUE döndürür. İkisi aynı olduğunda FALSE döndürür. Değiştirme mantığı için kullanışlıdır.
# xor truth table
cat('xor(TRUE, TRUE):', xor(TRUE, TRUE), '
') # FALSE
cat('xor(TRUE, FALSE):', xor(TRUE, FALSE), '
') # TRUE
cat('xor(FALSE, TRUE):', xor(FALSE, TRUE), '
') # TRUE
cat('xor(FALSE, FALSE):', xor(FALSE, FALSE), '
') # FALSE
# Practical: exactly one sensor triggered
sensor_a <- c(TRUE, FALSE, TRUE, FALSE)
sensor_b <- c(FALSE, FALSE, TRUE, TRUE)
cat('Exactly one sensor:', xor(sensor_a, sensor_b), '
')any() ve all()
any(), en az bir öğe TRUE ise TRUE döndürür. all(), yalnızca tüm öğeler TRUE ise TRUE döndürür. Her ikisi de mantıksal bir vektörü tek bir değere indirger.
temperatures <- c(22.1, 24.5, 19.8, 31.2, 28.0)
cat('Any temperature above 30?', any(temperatures > 30), '
')
cat('All temperatures above 15?', all(temperatures > 15), '
')
cat('All temperatures above 25?', all(temperatures > 25), '
')
# Useful for data validation
test_scores <- c(78, 85, 92, 88, 76)
cat('All passed (>=60)?', all(test_scores >= 60), '
')Mantıksal İşleçleri Birleştirme
Karmaşık koşullar oluşturmak için birden çok mantıksal işleci zincirleyebilirsiniz. R önce !, ardından & ve sonra | işlecini değerlendirir. Niyetinizi açıkça belirtmek için parantez kullanın.
age <- 25
income <- 55000
credit_score <- 720
# Loan eligibility: age 21-65, income >= 40000, credit >= 700
eligible <- (age >= 21 && age <= 65) &&
(income >= 40000) &&
(credit_score >= 700)
cat('Loan eligible:', eligible, '
')Veri Çerçevelerinde Mantıksal İşleçler
Mantıksal işleçler, veri çerçevelerini filtrelerken çok işe yarar. İhtiyacınız olan satırları tam olarak seçmek için birden çok koşulu birleştirebilirsiniz.
# Simple data frame
names_vec <- c('Alice', 'Bob', 'Carol', 'Dave', 'Eve')
ages_vec <- c(28, 35, 22, 45, 31)
salaries <- c(55000, 72000, 38000, 90000, 61000)
# Filter: age 25-40 AND salary above 50000
mask <- (ages_vec >= 25 & ages_vec <= 40) & (salaries > 50000)
cat('Matching employees:', names_vec[mask], '
')Boolean Aritmetiği
R'de aritmetik işlemlerde TRUE, 1; FALSE ise 0 olarak kabul edilir. Bu, sum() ile TRUE değerlerini sayabileceğiniz ve oranı elde etmek için mean() kullanabileceğiniz anlamına gelir.
responses <- c(TRUE, FALSE, TRUE, TRUE, FALSE, TRUE, FALSE, TRUE)
cat('Number of TRUE:', sum(responses), '
')
cat('Proportion TRUE:', mean(responses), '
')
cat('Percentage:', mean(responses) * 100, '%
')
# Count values meeting a condition
scores <- c(88, 45, 92, 61, 73, 55, 84)
cat('Number passing (>=60):', sum(scores >= 60), '
')Hızlı Denetim
R'de & ile && arasındaki fark nedir?
Özet: R'de Boolean Mantığı
Mükemmel! Bu dersten çıkarılacak önemli noktalar şunlardır:
&ve|vektörleştirilmiştir — öğeleri tek tek karşılaştırırlar&&ve||, kısa devre değerlendirmesine sahip skaler işleçlerdir —ififadelerinde kullanın!mantıksal bir değerin tersini alırxor(), tam olarak bir bağımsız değişkenTRUEolduğundaTRUEdöndürürany()veall(), mantıksal vektörleri tek bir değere indirgerTRUE == 1veFALSE == 0olduğundan mantıksal vektörleri toplayabilir veya ortalamasını alabilirsiniz
# Summary: all logical operators at a glance
x <- c(TRUE, FALSE, TRUE)
y <- c(TRUE, TRUE, FALSE)
cat('x & y :', x & y, '
')
cat('x | y :', x | y, '
')
cat('!x :', !x, '
')
cat('xor :', xor(x, y), '
')
cat('any(x):', any(x), '
')
cat('all(x):', all(x), '
')Sıkça Sorulan Sorular
“Mantıksal İşleçler ve Boolean Mantığı” dersi ücretsiz mi?
Evet — “Mantıksal İşleçler ve Boolean Mantığı” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve R Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. R Academy kursu toplamda 4 dersten oluşur.
“Mantıksal İşleçler ve Boolean Mantığı” dersinde ne öğreneceğim?
Boolean işlemleri için &, |, !, xor(), any() ve all() ifadelerini anlayın. R Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
R Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te R Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Mantıksal İşleçler ve Boolean Mantığı” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu R Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her R Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Aritmetik ve Karşılaştırma İşleçleri
- Mantıksal İşleçler ve Boolean Mantığı
- Atama ve Özel İşleçler
- İşleç Önceliği ve Karmaşık İfadeler