Menu
Coddy logo textTech

Test di appartenenza

Fa parte della sezione Logica e flusso del percorso R di Coddy. Lezione 14 di 64.

x %in% set controlla ogni elemento di x e restituisce un valore logico per ogni elemento. all() verifica se tutti i controlli sono TRUE, any() se almeno uno lo è.

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

Indicizza con il controllo negato per elencare ciò che manca, nell’ordine del primo vettore:

required <- c("flour", "eggs", "milk", "sugar")
pantry <- c("eggs", "flour")
missing <- required[!(required %in% pantry)]
print(missing)

Output:

[1] "milk"  "sugar"

setequal(a, b) verifica se due vettori contengono gli stessi valori, ignorando l’ordine e le ripetizioni:

print(setequal(c("a", "b"), c("b", "a", "a")))
print(setequal(c("a", "b"), c("a", "c")))

Output:

[1] TRUE
[1] FALSE

Su un vettore vuoto, all() è TRUE e any() è FALSE: se non è richiesto nulla, non manca nulla.

which() trasforma un vettore logico nelle posizioni dei suoi valori TRUE, indicando dove si trovano le corrispondenze:

required <- c("flour", "eggs", "milk")
pantry <- c("eggs")
print(which(!(required %in% pantry)))

Output:

[1] 1 3
challenge icon

Sfida

Facile

Completa check_recipe(required, pantry). Restituisci ready quando tutti gli ingredienti richiesti sono nella dispensa. Altrimenti, restituisci missing: seguito dagli ingredienti mancanti, nell’ordine di required, uniti con , .

Il codice fornito legge gli ingredienti richiesti e quelli presenti nella dispensa da righe separate da virgole e stampa il valore restituito.

Provalo tu

check_recipe <- function(required, pantry) {
  # Write your code here
  ""
}

# Supplied input/output code: keep it as it is
input <- suppressWarnings(readLines(file("stdin")))
cat(check_recipe(strsplit(input[1], ",")[[1]], strsplit(input[2], ",")[[1]]), sep = "\n")
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore R online