Vecteurs et suites nommés
Attribuez des noms aux vecteurs et accédez-y pour obtenir un code lisible.
Vecteurs et suites nommés est une leçon R Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage R Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours R Academy comprend 4 leçons au total.
Introduction aux vecteurs nommés
Un vecteur nommé est un vecteur dont chaque élément possède un nom associé (une étiquette character). Les noms rendent le code plus lisible et permettent d’accéder aux éléments par leur nom plutôt que par leur indice de position.
# A plain vector vs a named vector
plain <- c(78, 92, 85, 67)
named <- c(Alice = 78, Bob = 92, Carol = 85, Dave = 67)
cat('Plain vector:', plain, '
')
cat('Named vector:
')
print(named)Créer des vecteurs nommés avec c()
La manière la plus simple de créer un vecteur nommé consiste à utiliser des paires name = value à l’intérieur de c(). Les noms peuvent être n’importe quelle chaîne valide ; s’ils contiennent des espaces ou des caractères spéciaux, placez-les entre des accents graves ou des guillemets.
# GDP in trillions USD
gdp <- c(USA = 27.4, China = 18.0, Germany = 4.1,
Japan = 4.2, UK = 3.1)
cat('GDP values:
')
print(gdp)
cat('Names:', names(gdp), '
')
cat('Values:', unname(gdp), '
')La fonction names()
names(x) récupère les noms d’un vecteur sous la forme d’un vecteur character. Vous pouvez également attribuer les noms après la création avec names(x) <- c(...), ce qui modifie le vecteur sur place.
# Assign names after creation
temps <- c(22.1, 18.5, 25.3, 20.0)
cat('Before naming:', temps, '
')
names(temps) <- c('Mon', 'Tue', 'Wed', 'Thu')
cat('After naming:
')
print(temps)
# Retrieve names
cat('Days:', names(temps), '
')Accéder aux éléments par leur nom
Accédez aux éléments d’un vecteur nommé avec x["name"] ou x[["name"]]. Les crochets simples [] renvoient un sous-ensemble nommé ; les doubles crochets [[]] renvoient uniquement la valeur, sans son nom.
scores <- c(Math = 88, Science = 92, English = 75, History = 81)
# Single bracket: keeps name
cat('Math score (with name):
')
print(scores['Math'])
# Double bracket: just the value
cat('Science score (value only):', scores[['Science']], '
')
# Multiple names
cat('STEM subjects:
')
print(scores[c('Math', 'Science')])setNames() pour un style fonctionnel
setNames(x, nm) renvoie une copie de x dont les noms sont définis sur nm, sans modifier l’original. Cette fonction est utile dans les pipelines lorsque vous souhaitez nommer un vecteur au sein d’une chaîne d’opérations.
# setNames returns a named copy (does not modify original)
raw_values <- c(0.85, 0.72, 0.91, 0.68)
metrics <- setNames(raw_values, c('Precision', 'Recall', 'F1', 'Accuracy'))
cat('Original (unchanged):', raw_values, '
')
cat('Named metrics:
')
print(metrics)
# Best metric
best_name <- names(which.max(metrics))
cat('Best metric:', best_name, '=', metrics[best_name], '
')Modifier les noms
Vous pouvez modifier des noms individuels en utilisant un indice dans names(x). Cette méthode est utile lorsque vous devez renommer un sous-ensemble d’éléments sans recréer le vecteur entier.
prices <- c(apple = 1.20, bannana = 0.80, cherry = 3.50) # typo!
# Fix a single name
names(prices)[2] <- 'banana'
cat('Fixed names:
')
print(prices)
# Rename all
names(prices) <- c('Apple', 'Banana', 'Cherry') # capitalise
cat('Capitalised:
')
print(prices)Séquences nommées avec seq() et names()
Vous pouvez créer une séquence nommée en combinant seq() et setNames(). Cela est particulièrement utile pour les indices mensuels ou hebdomadaires, lorsque les noms apportent un contexte aux valeurs numériques.
# Monthly average temperature with names
temps_monthly <- setNames(
c(3.1, 4.2, 8.5, 13.0, 17.2, 21.0, 23.5, 23.0, 19.0, 13.5, 7.8, 4.0),
month.abb
)
cat('Monthly temps:
')
print(temps_monthly)
cat('Summer avg:', mean(temps_monthly[c('Jun', 'Jul', 'Aug')]), '
')Filtrer des vecteurs nommés
Les vecteurs nommés prennent en charge l’indexation logique et character. Vous pouvez sélectionner des éléments par leur nom et les filtrer simultanément par leur valeur, ce qui rend les vecteurs nommés très expressifs pour les petites tables de correspondance.
population <- c(Tokyo = 37.4, Delhi = 32.9, Shanghai = 28.5,
Dhaka = 22.5, Cairo = 21.3, Mumbai = 20.7)
# Select cities with population > 25 million
big_cities <- population[population > 25]
cat('Cities over 25M:
')
print(big_cities)
# Sort descending by population
cat('Ranked:
')
print(sort(population, decreasing = TRUE))Supprimer les noms avec unname()
unname(x) retire tous les noms d’un vecteur et renvoie uniquement les valeurs. Cette fonction est utile lorsque vous transmettez des données à des fonctions qui n’acceptent pas les vecteurs nommés, ou lorsque les noms encombrent visuellement le résultat.
named_vec <- c(x1 = 10, x2 = 20, x3 = 30, x4 = 40)
cat('Named:
')
print(named_vec)
unnamed_vec <- unname(named_vec)
cat('Unnamed:
')
print(unnamed_vec)
# Check
cat('Has names after unname:', !is.null(names(unnamed_vec)), '
')Les vecteurs nommés comme tables de correspondance
L’une des utilisations les plus puissantes des vecteurs nommés est de servir de table de correspondance : associer des clés à des valeurs. Au lieu d’enchaîner des instructions if-else, utilisez un vecteur nommé et indexez-le.
# Map month abbreviation to number of days
days_in_month <- c(Jan=31, Feb=28, Mar=31, Apr=30, May=31,
Jun=30, Jul=31, Aug=31, Sep=30, Oct=31,
Nov=30, Dec=31)
# Look up specific months
query <- c('Mar', 'Jul', 'Nov')
cat('Days in', query[1], ':', days_in_month[query[1]], '
')
cat('Days in', query[2], ':', days_in_month[query[2]], '
')
cat('Days in', query[3], ':', days_in_month[query[3]], '
')Vecteurs nommés : points essentiels
Résumé des fonctionnalités des vecteurs nommés dans R :
- Créer avec
c(name = value, ...)ou attribuer avecnames(x) <- c(...) - Accéder par nom avec
x['name'](conserve le nom) oux[['name']](valeur uniquement) setNames(x, nm)renvoie une copie nommée sans modifier l’originalunname(x)supprime tous les noms- Les vecteurs nommés servent d’élégantes tables de correspondance (en remplacement des chaînes de if-else)
# Complete workflow
rates <- c(USD = 1.0, EUR = 0.92, GBP = 0.79, JPY = 149.5)
# Convert 100 USD to each currency
amount_usd <- 100
converted <- amount_usd * rates
cat('100 USD in other currencies:
')
print(round(converted, 2))Vérification rapide
Quelle est la différence entre x['key'] et x[['key']] lorsque x est un vecteur nommé ?
Récapitulatif : vecteurs nommés
Excellent travail ! Voici les principaux points à retenir de cette leçon :
- Les vecteurs nommés associent chaque élément à une étiquette character
- Les créer avec la syntaxe
c(name = val)ou leur attribuer des noms avecnames(x) <- ... x['name']renvoie un sous-ensemble nommé ;x[['name']]renvoie uniquement la valeursetNames()est la manière fonctionnelle (sans modification) d’attribuer des noms- Utilisez les vecteurs nommés comme tables de correspondance pour remplacer les longues chaînes de if-else
unname()retire les noms lorsque vous avez besoin des valeurs brutes
# Named vector as grade lookup
grade_map <- c('90'='A', '80'='B', '70'='C', '60'='D')
student_score <- 80
# Find grade bracket
brackets <- c(90, 80, 70, 60)
threshold <- max(brackets[brackets <= student_score])
cat('Score:', student_score, '-> Grade:', grade_map[as.character(threshold)], '
')Apprends R avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 43
- Leçons
- 159
Questions Fréquemment Posées
La leçon « Vecteurs et suites nommés » est-elle gratuite ?
Oui — le texte complet de « Vecteurs et suites nommés » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours R Academy, passe à CoddyKit PRO. Le cours R Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Vecteurs et suites nommés » ?
Attribuez des noms aux vecteurs et accédez-y pour obtenir un code lisible. Tu pratiques R Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer R Academy ?
Aucune expérience préalable n'est requise. R Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Vecteurs et suites nommés » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon R Academy ?
Oui. Chaque leçon R Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- L’opérateur deux-points pour les intervalles d’entiers
- seq() pour les suites personnalisées
- rep() pour répéter des valeurs
- Vecteurs et suites nommés