Vecteurs nommés
Fait partie de la section Fondamentaux du Journey R de Coddy — leçon 62 sur 78.
Jusqu'à présent, vous avez accédé aux éléments d'un vecteur en utilisant des positions numériques. Mais et si vous pouviez y accéder par des noms significatifs à la place ? Les vecteurs nommés vous permettent d'attribuer des étiquettes à chaque élément, rendant votre code plus lisible et auto-documenté.
Vous pouvez créer un vecteur nommé en fournissant des noms lors de la création :
ages <- c(alice = 25, bob = 30, charlie = 28)
print(ages)Sortie :
alice bob charlie
25 30 28Pour accéder aux éléments par leur nom, utilisez le nom sous forme de chaîne de caractères entre crochets :
print(ages["bob"])Sortie :
bob
30Vous pouvez également ajouter des noms à un vecteur existant en utilisant la fonction names() :
scores <- c(85, 92, 78)
names(scores) <- c("math", "science", "english")
print(scores["math"])Sortie :
math
85Les vecteurs nommés sont particulièrement utiles lorsque l'on travaille avec des données qui possèdent des étiquettes naturelles, comme le stockage des notes d'étudiants par matière ou des prix par nom de produit.
Défi
FacileVous recevrez deux lignes d'entrée :
- Une liste de noms de produits séparés par des virgules (par exemple,
laptop,phone,tablet,headphones) - Une liste de prix correspondants séparés par des virgules (par exemple,
999,699,449,199)
Effectuez les opérations suivantes :
- Créez un vecteur numérique à partir des prix
- Attribuez les noms des produits au vecteur en utilisant la fonction
names() - Affichez l'intégralité du vecteur nommé
- Affichez le prix du deuxième produit en y accédant par son nom
- Affichez le prix du dernier produit en y accédant par son nom
Par exemple, si les entrées sont :
apple,banana,orange,grape
2,1,3,4La sortie devrait être :
apple banana orange grape
2 1 3 4
banana
1
grape
4Remarque : Accédez au deuxième et au dernier élément par leurs noms (en tant que chaînes de caractères), et non par leur index numérique.
Aide-mémoire
Les vecteurs nommés vous permettent d'attribuer des étiquettes à chaque élément, rendant les éléments accessibles par des noms significatifs au lieu de simples positions numériques.
Créez un vecteur nommé en fournissant des noms lors de la création :
ages <- c(alice = 25, bob = 30, charlie = 28)Accédez aux éléments par leur nom en utilisant le nom comme une chaîne de caractères entre crochets :
ages["bob"] # Retourne l'élément nommé "bob"Ajoutez des noms à un vecteur existant en utilisant la fonction names() :
scores <- c(85, 92, 78)
names(scores) <- c("math", "science", "english")
scores["math"] # Retourne 85Essayez vous-même
# Lire l'entrée
con <- file("stdin", "r")
products_input <- suppressWarnings(readLines(con, n = 1))
prices_input <- suppressWarnings(readLines(con, n = 1))
close(con)
# Analyser les entrées séparées par des virgules
product_names <- strsplit(products_input, ",")[[1]]
price_values <- strsplit(prices_input, ",")[[1]]
# TODO: Écrivez votre code ci-dessous
# 1. Créer un vecteur numérique à partir des prix
# 2. Attribuer les noms des produits au vecteur en utilisant names()
# 3. Afficher l'ensemble du vecteur nommé
# 4. Afficher le prix du deuxième produit en y accédant par son nom
# 5. Afficher le prix du dernier produit en y accédant par son nomCette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs - Partie 2
Opérateurs logiques (AND, OR)Opérateurs logiques - Partie 2 (NOT)Récapitulatif - Logique simpleLogique vectorisée - Partie 1Logique vectorisée - Partie 27Calculateur de partage d'addition
Message de bienvenueRécupérer la saisie utilisateur10FizzBuzz avec une variante
Présentation du jeuLa fonction FizzBuzz2Variables et types de données
Type de données numériqueType de données entierType de données caractèreType de données logiqueVérification des types de donnéesConventions de nommageValeurs manquantes : NARécapitulatif - Création de variables8Boucles
Boucle ForBoucle WhileBreakSuivant (Continue)Récapitulatif - FactorielleGénération de séquences (seq, :)Boucles imbriquéesRécapitulatif - Saisie dynamique3Opérateurs, partie 1
Opérateurs arithmétiquesDivision entière et moduloOpérateurs d'affectationRécapitulatif - Mathématiques simplesOpérateurs de comparaison6Entrées/Sorties de base
Affichage avec PrintCat pour l'affichageAffichage avec des variablesLire l'entrée avec readline()Bases de la conversion de typesRécapitulatif - Calculateur d'âgeRécapitulatif - Vrai ou Faux9Fonctions
Déclarer une fonctionArguments de fonctionValeurs de retourRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validationValeurs de paramètres par défaut