Operator Logik dan Logik Boolean
Fahami &, |, !, xor(), any() dan all() untuk operasi Boolean.
Operator Logik dan Logik Boolean ialah pelajaran R Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran R Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus R Academy merangkumi sejumlah 4 pelajaran.
Pengenalan kepada Logik Boolean
Logik Boolean ialah asas pembuatan keputusan dalam pengaturcaraan. Dalam R, nilai logik ialah TRUE dan FALSE. Operator logik menggabungkan nilai ini untuk membentuk syarat yang kompleks.
# 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), '
')AND Unsur demi Unsur dengan &
Operator & melaksanakan AND unsur demi unsur pada vektor. Operator ini mengembalikan TRUE hanya apabila kedua-dua unsur yang sepadan ialah TRUE. Operator ini memproses setiap unsur dalam vektor.
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, '
')OR Unsur demi Unsur dengan |
Operator | melaksanakan OR unsur demi unsur. Operator ini mengembalikan TRUE apabila sekurang-kurangnya satu daripada unsur yang sepadan ialah TRUE.
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, '
')NOT Logik dengan !
Operator ! menafikan nilai logik, dengan menukar TRUE kepada FALSE dan sebaliknya. Operator ini digunakan sebelum & dan | mengikut urutan penilaian.
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), '
')AND Skalar dengan &&
&& ialah versi skalar bagi AND — operator ini hanya menilai unsur pertama setiap vektor dan menggunakan penilaian litar pintas: jika bahagian kiri ialah FALSE, bahagian kanan tidak akan dinilai.
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, '
')OR Skalar dengan ||
|| ialah versi skalar bagi OR dengan penilaian litar pintas: jika bahagian kiri ialah TRUE, bahagian kanan tidak akan dinilai. Gunakan || dalam pernyataan if apabila anda hanya memerlukan satu hasil.
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, '
')OR Eksklusif dengan xor()
xor(x, y) mengembalikan TRUE apabila tepat satu daripada x atau y ialah TRUE. Operator ini mengembalikan FALSE apabila kedua-duanya sama. Berguna untuk logik togol.
# 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() dan all()
any() mengembalikan TRUE jika sekurang-kurangnya satu unsur ialah TRUE. all() mengembalikan TRUE hanya jika setiap unsur ialah TRUE. Kedua-duanya mengecilkan vektor logik kepada satu nilai.
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), '
')Menggabungkan Operator Logik
Anda boleh merangkaikan berbilang operator logik untuk membina syarat yang kompleks. R menilai ! dahulu, kemudian &, dan seterusnya |. Gunakan tanda kurung untuk menjelaskan maksud anda.
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, '
')Operator Logik pada Bingkai Data
Operator logik amat berguna apabila menapis bingkai data. Anda boleh menggabungkan berbilang syarat untuk memilih tepat baris yang diperlukan.
# 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], '
')Aritmetik Boolean
Dalam R, TRUE dianggap sebagai 1 dan FALSE sebagai 0 dalam operasi aritmetik. Ini bermakna anda boleh menggunakan sum() untuk mengira nilai TRUE dan mean() untuk mendapatkan perkadaran.
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), '
')Semakan Pantas
Apakah perbezaan antara & dan && dalam R?
Imbas Kembali: Logik Boolean dalam R
Cemerlang! Berikut ialah perkara penting daripada pelajaran ini:
&dan|adalah tervektor — kedua-duanya membandingkan unsur demi unsur&&dan||adalah skalar dengan penilaian litar pintas — gunakan dalam pernyataanif!menafikan nilai logikxor()mengembalikanTRUEapabila tepat satu argumen ialahTRUEany()danall()mengecilkan vektor logik kepada satu nilaiTRUE == 1danFALSE == 0, jadi anda boleh menjumlahkan atau mempuratakan vektor logik
# 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), '
')Pelajari R dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 43
- Pelajaran
- 159
Soalan Lazim
Adakah pelajaran “Operator Logik dan Logik Boolean” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran R Academy, termasuk “Operator Logik dan Logik Boolean”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus R Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Operator Logik dan Logik Boolean”?
Fahami &, |, !, xor(), any() dan all() untuk operasi Boolean. Anda berlatih R Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan R Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran R Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Operator Logik dan Logik Boolean” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran R Academy ini?
Ya. Setiap pelajaran R Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Operator Aritmetik dan Perbandingan
- Operator Logik dan Logik Boolean
- Operator Tugasan dan Khas
- Keutamaan Operator dan Ungkapan Kompleks