Pengujian Keanggotaan
Termasuk bagian Logika dan Alur dalam perjalanan R di Coddy. Pelajaran 14 dari 64.
x %in% set memeriksa setiap elemen dari x dan mengembalikan satu nilai logis untuk setiap elemen. all() menanyakan apakah setiap pemeriksaan bernilai TRUE, sedangkan any() menanyakan apakah setidaknya satu pemeriksaan bernilai demikian.
required <- c("flour", "eggs", "milk")
pantry <- c("eggs", "salt", "flour")
print(required %in% pantry)
print(all(required %in% pantry))
print(any(required %in% pantry))Output:
[1] TRUE TRUE FALSE
[1] FALSE
[1] TRUEGunakan indeks dengan pemeriksaan negasi untuk mencantumkan yang tidak ada, sesuai urutan vektor pertama:
required <- c("flour", "eggs", "milk", "sugar")
pantry <- c("eggs", "flour")
missing <- required[!(required %in% pantry)]
print(missing)Output:
[1] "milk" "sugar"setequal(a, b) memeriksa apakah dua vector berisi nilai yang sama, tanpa memperhatikan urutan dan pengulangan:
print(setequal(c("a", "b"), c("b", "a", "a")))
print(setequal(c("a", "b"), c("a", "c")))Output:
[1] TRUE
[1] FALSEPada vector kosong, all() bernilai TRUE dan any() bernilai FALSE: jika tidak ada yang diwajibkan, tidak ada yang kurang.
which() mengubah vektor logis menjadi posisi nilai TRUE-nya, yang memberi tahu kamu di mana kecocokannya:
required <- c("flour", "eggs", "milk")
pantry <- c("eggs")
print(which(!(required %in% pantry)))Output:
[1] 1 3Tantangan
MudahLengkapi check_recipe(required, pantry). Kembalikan ready saat setiap bahan yang diperlukan tersedia di tempat penyimpanan bahan. Jika tidak, kembalikan missing: diikuti bahan yang tidak tersedia, sesuai urutan dalam required, dan gabungkan dengan , .
Kode yang disediakan membaca bahan yang diperlukan dan tempat penyimpanan bahan dari baris yang dipisahkan koma, lalu mencetak nilai yang dikembalikan.
Coba sendiri
check_recipe <- function(required, pantry) {
# Tulis kodemu di sini
""
}
# Kode input/output yang disediakan: biarkan apa adanya
input <- suppressWarnings(readLines(file("stdin")))
cat(check_recipe(strsplit(input[1], ",")[[1]], strsplit(input[2], ",")[[1]]), sep = "\n")
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Mendalami string
Substring dengan substr()Memformat dengan sprintf()Memisahkan dan MenggabungkanMencari stringMengganti TeksRangkuman: Pembuat Nama Pengguna4Matriks
Membuat MatriksMengakses Elemen MatriksRingkasan Baris dan KolomAritmetika MatriksRangkuman: Denah Tempat Duduk2Pencarian Nilai-Kunci
Pencarian pada Vector BernamaMemeriksa KunciMenambahkan dan Menghapus KunciMenelusuri NamaUlasan: Meja Saham5Proyek, Buku Nilai
Menambahkan SiswaMencatat Nilai3Set dan Penghitungan
Nilai UnikOperasi setPengujian KeanggotaanMenghitung dengan table()Ulasan: Tamu Acara6Fungsi sebagai Nilai
Fungsi AnonimMengirim FungsiMengembalikan FungsiClosure dengan StateRangkuman: Aturan Diskon9Data Frame
Membuat Data FrameKolom dan BarisMemfilter BarisMenambahkan dan MengurutkanRangkuman: Laporan Penjualan12Proyek: Pelacak Pengeluaran
Mencatat PengeluaranTotal PengeluaranLatihan sendiri: Compiler R online