Menu
Coddy logo textTech

Ricerche in vettori con nomi

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

Un vettore con nome memorizza i valori associandoli a dei nomi, diventando così una tabella di ricerca: il nome è la chiave e l’elemento è il suo valore. Inserisci il nome in [[ ]] per ottenere solo il valore.

prices <- c(tea = 4, cake = 7)
print(prices[["cake"]])
print(names(prices))

Output:

[1] 7
[1] "tea"  "cake"

Le parentesi singole restituiscono l’elemento insieme al suo nome. [[ ]] restituisce solo il valore:

prices <- c(tea = 4, cake = 7)
print(prices["cake"])
print(prices[["cake"]] * 2)

Risultato:

cake 
   7 
[1] 14

Il nome può provenire da una variabile, ed è così che un programma cerca una chiave letta dall'input:

prices <- c(tea = 4, cake = 7)
item <- "tea"
print(prices[[item]])

Output:

[1] 4

Un vettore di nomi cerca più chiavi contemporaneamente, incluse le ripetizioni, quindi sum() calcola il totale di un ordine in un solo passaggio:

prices <- c(tea = 4, cake = 7)
order <- c("tea", "cake", "tea")
print(sum(prices[order]))

Output:

[1] 15

Un nome mancante si comporta diversamente nelle due forme: prices["milk"] restituisce NA, mentre prices[["milk"]] si interrompe con l'errore subscript out of bounds.

challenge icon

Sfida

Facile

Completa line_total(item, qty). La funzione definisce il menu qui sotto. Restituisci il prezzo di item moltiplicato per qty, formattato con due decimali: tea e 3 danno 7.50.

menu <- c(tea = 2.5, coffee = 3, cake = 4.25, soup = 6)

Tutti gli elementi dell'input sono presenti nel menu. Il codice fornito legge l'elemento e la quantità e stampa il valore restituito.

Provalo tu

line_total <- function(item, qty) {
  menu <- c(tea = 2.5, coffee = 3, cake = 4.25, soup = 6)
  # Escribe tu código aquí
  ""
}

# Código de entrada/salida proporcionado: mantenlo tal como está
input <- suppressWarnings(readLines(file("stdin")))
cat(line_total(input[1], as.numeric(input[2])), 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