Menu
CoddyTech

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] TRUE

Gunakan 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] FALSE

Pada 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 3
challenge icon

Tantangan

Mudah

Lengkapi 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")
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler R online