Vettori con nome
Fa parte della sezione Fondamenti del percorso R di Coddy. Lezione 62 di 78.
Finora hai avuto accesso agli elementi dei vettori usando posizioni numeriche. Ma se potessi accedervi usando nomi significativi? I vettori con nomi ti permettono di assegnare etichette a ogni elemento, rendendo il tuo codice più leggibile e autoesplicativo.
Puoi creare un vettore con nomi specificandoli durante la creazione:
ages <- c(alice = 25, bob = 30, charlie = 28)
print(ages)Risultato:
alice bob charlie
25 30 28Per accedere agli elementi tramite il nome, usa il nome come stringa tra parentesi quadre:
print(ages["bob"])Output:
bob
30Puoi anche aggiungere nomi a un vettore esistente usando la funzione names():
scores <- c(85, 92, 78)
names(scores) <- c("math", "science", "english")
print(scores["math"])Output:
math
85I vettori con nome sono particolarmente utili quando si lavora con dati che hanno etichette naturali, come memorizzare i voti degli studenti per materia o i prezzi per nome del prodotto.
Sfida
FacileRiceverai due righe di input:
- Un elenco di nomi di prodotti separati da virgole (ad es.,
laptop,phone,tablet,headphones) - Un elenco dei prezzi corrispondenti separati da virgole (ad es.,
999,699,449,199)
Esegui le seguenti operazioni:
- Crea un vettore numerico a partire dai prezzi
- Assegna i nomi dei prodotti al vettore usando la funzione
names() - Stampa l'intero vettore con i nomi
- Stampa il prezzo del secondo prodotto accedendovi tramite il suo nome
- Stampa il prezzo dell'ultimo prodotto accedendovi tramite il suo nome
Ad esempio, se gli input sono:
apple,banana,orange,grape
2,1,3,4L'output dovrebbe essere:
apple banana orange grape
2 1 3 4
banana
1
grape
4Nota: accedi al secondo e all'ultimo elemento usando un nome come indice (una stringa, ad esempio prices["banana"]), non usando una posizione numerica. I nomi provengono dalla prima riga di input, quindi cerca lì prima il nome corretto.
Provalo tu
# Leggi l'input
con <- file("stdin", "r")
products_input <- suppressWarnings(readLines(con, n = 1))
prices_input <- suppressWarnings(readLines(con, n = 1))
close(con)
# Analizza gli input separati da virgole
product_names <- strsplit(products_input, ",")[[1]]
price_values <- strsplit(prices_input, ",")[[1]]
# TODO: Scrivi il tuo codice qui sotto
# 1. Crea un vettore numerico a partire dai prezzi
# 2. Assegna i nomi dei prodotti al vettore usando names()
# 3. Stampa l'intero vettore con i nomi
# 4. Stampa il prezzo del secondo prodotto accedendovi tramite il suo nome
# 5. Stampa il prezzo dell'ultimo prodotto accedendovi tramite il suo nomeQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 2
Operatori logici (AND, OR)Operatori logici Parte 2 (NOT)Ripasso - Logica sempliceLogica vettorializzata Parte 1Logica vettorializzata Parte 27Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire input dell'utente10FizzBuzz con una variante
Panoramica del giocoLa funzione FizzBuzz13Vettori: argomenti avanzati
Slicing e indicizzazione dei vettoriIndicizzazione logicaAritmetica dei vettori e ricicloL’operatore %in%2Variabili e tipi di dati
Tipo di dato numericoTipo di dato interoTipo di dato carattereTipo di dato logicoControllo dei tipi di datoConvenzioni di denominazioneValori mancanti: NARiepilogo - Creazione di variabili8Cicli
Ciclo forCiclo whilebreaknext (continue)Riepilogo - FattorialeGenerazione di sequenze (seq, :)Cicli annidatiRiepilogo - Input dinamico3Operatori Parte 1
Operatori aritmeticiDivisione intera e moduloOperatori di assegnazioneRiepilogo - Matematica sempliceOperatori di confronto6I/O di base
Stampare l'outputcat per l'outputOutput con variabiliLeggere l'input con readline()Nozioni di base sulla conversione dei tipiRiepilogo - Calcolatore dell'etàRiepilogo - Vero o falso9Funzioni
Dichiarare una funzioneArgomenti della funzioneValori di ritornoRiepilogo - Funzione SigmaRiepilogo - Funzione di validazioneValori predefiniti dei parametriEsercitati da solo: Compilatore R online