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] 14Il 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] 4Un 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] 15Un nome mancante si comporta diversamente nelle due forme: prices["milk"] restituisce NA, mentre prices[["milk"]] si interrompe con l'errore subscript out of bounds.
Sfida
FacileCompleta 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")
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Sottostringhe con substr()Formattazione con sprintf()Dividere e unireRicerca nelle stringheSostituzione del testoRipasso - Generatore di nomi utente4Matrici
Creazione di matriciIndicizzazione delle matriciRiepiloghi di righe e colonneOperazioni aritmetiche con le matriciRipasso - Schema dei posti a sedere10Flusso di controllo avanzato
La funzione switch()ifelse() vettorialerepeat e breakFunzioni ricorsiveRiepilogo - Classificatore di voti2Ricerche chiave-valore
Ricerche in vettori con nomiControllare le chiaviAggiungere e rimuovere chiaviIterare sui nomiRiepilogo - Sportello titoli5Progetto - Registro dei voti
Aggiungere studentiRegistrare i voti8Ordinamento e raggruppamento
Ordinare i vettoriOrdinare in base a una chiaveRaggruppare con split()Riepiloghi dei gruppiRipasso - Classifica3Insiemi e conteggio
Valori univociOperazioni sugli insiemiTest di appartenenzaConteggio con table()Riepilogo - Ospiti dell’evento6Le funzioni come valori
Funzioni anonimePassare funzioniRestituire funzioniClosure con statoRiepilogo - Regole di sconto9DataFrame
Creare DataFrameColonne e righeFiltrare le righeAggiungere e ordinareRiepilogo - Report delle vendite12Progetto - Gestione delle spese
Registrare le speseSpesa totaleEsercitati da solo: Compilatore R online