Logika Tervektorisasi Bagian 2
Termasuk bagian Dasar-Dasar dalam perjalanan R di Coddy. Pelajaran 21 dari 78.
Sama seperti AND dan OR yang memiliki versi tervectorisasi, operator NOT juga bekerja pada setiap elemen vektor. Saat kamu menerapkan ! pada vektor nilai logis, operator ini membalik setiap elemen satu per satu.
passed <- c(TRUE, FALSE, TRUE, FALSE)
!passed # FALSE TRUE FALSE TRUESetiap TRUE menjadi FALSE, dan setiap FALSE menjadi TRUE. Ini sangat berguna saat kamu ingin menemukan elemen yang tidak memenuhi kondisi tertentu:
temperatures <- c(18, 25, 30, 15, 22)
# Cari suhu yang TIDAK lebih dari 20
!(temperatures > 20) # TRUE FALSE FALSE TRUE FALSEKamu dapat menggabungkan NOT vektorisasi dengan & dan | untuk membuat filter yang kompleks:
ages <- c(16, 25, 18, 30, 14)
has_permission <- c(TRUE, TRUE, FALSE, TRUE, TRUE)
# Kamu bisa ikut jika: usia >= 18 OR (di bawah 18 AND memiliki izin)
can_participate <- ages >= 18 | (ages < 18 & has_permission)
# TRUE TRUE FALSE TRUE TRUEIngat: gunakan &, |, dan ! tunggal saat bekerja dengan vektor, serta && dan || ganda saat membandingkan nilai tunggal.
Tantangan
MudahGunakan operator NOT yang divektorkan (!) bersama & dan | untuk membuat kondisi logis kompleks yang diterapkan pada setiap elemen.
Kamu diberikan vektor berikut:
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)Gunakan operator logis yang divektorkan, termasuk operator NOT, untuk membuat vektor logis berikut:
- Buat vektor bernama
failedyang menyimpanTRUEuntuk setiap nilai skor yang TIDAK lebih besar dari atau sama dengan 60 - Buat vektor bernama
absentyang menyimpan kebalikan dariattended(balik setiap nilainya) - Buat vektor bernama
at_riskyang menyimpanTRUEuntuk setiap siswa yang TIDAK hadir ATAU TIDAK mengumpulkan PR - Buat vektor bernama
passing_but_absentyang menyimpanTRUEuntuk setiap siswa dengan skor lebih besar dari atau sama dengan 60 DAN TIDAK hadir - Buat vektor bernama
needs_supportyang menyimpanTRUEuntuk setiap siswa yang memenuhi kondisi: (skor kurang dari 50) ATAU (TIDAK hadir DAN TIDAK mengumpulkan PR)
Gunakan fungsi print() untuk menampilkan failed, absent, at_risk, passing_but_absent, dan needs_support dalam urutan tersebut.
Coba sendiri
# Vektor yang diberikan
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: Tulis kodemu di bawah ini
# 1. Buat 'failed': TRUE jika scores tidak >= 60
# 2. Buat 'absent': kebalikan dari attended
# 3. Buat 'at_risk': bukan attended ATAU tidak mengumpulkan tugas rumah
# 4. Buat 'passing_but_absent': score >= 60 DAN bukan attended
# 5. Buat 'needs_support': (score < 50) ATAU (bukan attended DAN tidak mengumpulkan tugas rumah)
# Cetak hasilnya
print(failed)
print(absent)
print(at_risk)
print(passing_but_absent)
print(needs_support)Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Bagian 2
Operator Logika (AND, OR)Operator Logika Bagian 2 (NOT)Rangkuman: Logika SederhanaLogika Tervektorisasi Bagian 1Logika Tervektorisasi Bagian 27Kalkulator Pembagi Tagihan
Pesan Selamat DatangMenerima Input Pengguna10FizzBuzz dengan Sentuhan Unik
Ikhtisar PermainanFungsi FizzBuzz2Variabel dan Tipe Data
Tipe Data NumerikTipe Data IntegerTipe Data KarakterTipe Data LogikaMemeriksa Tipe DataKonvensi PenamaanNilai yang Hilang: NARingkasan: Membuat Variabel8Perulangan
For LoopWhile LoopBreakBerikutnya (Continue)Ringkasan: FaktorialPembuatan Urutan (seq, :)Loop BersarangRingkasan: Input Dinamis3Operator Bagian 1
Operator AritmetikaPembagian Bilangan Bulat dan ModuloOperator PenugasanRangkuman: Matematika SederhanaOperator Perbandingan6Dasar input/output
Cetak outputcat untuk outputOutput dengan variabelMembaca input dengan readline()Dasar konversi tipe dataRingkasan: Kalkulator usiaRingkasan: Benar atau salah9Fungsi
Mendeklarasikan FungsiArgumen FungsiNilai KembalianUlasan: Fungsi SigmaUlasan: Fungsi ValidasiNilai Parameter Default12Melakukan Iterasi pada Urutan
Mengiterasi Elemen VektorMenggunakan seq_along()Mengiterasi Karakter (strsplitFungsi Manipulasi stringLatihan sendiri: Compiler R online