Menu
Coddy logo textTech

Recherches dans des vecteurs nommés

Fait partie de la section Logique et flux d’exécution du Journey R de Coddy. Leçon 7 sur 64.

Un vecteur nommé stocke des valeurs sous des noms, ce qui en fait une table de recherche : le nom est la clé et l’élément est sa valeur. Placez le nom dans [[ ]] pour obtenir uniquement la valeur.

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

Sortie :

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

Les crochets simples renvoient l’élément avec son nom. [[ ]] renvoie uniquement la valeur :

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

Résultat :

cake 
   7 
[1] 14

Le nom peut provenir d’une variable, ce qui permet à un programme de rechercher une clé lue depuis l’entrée :

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

Sortie :

[1] 4

Un vecteur de noms recherche plusieurs clés à la fois, y compris les répétitions, de sorte que sum() totalise une commande en une seule étape :

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

Sortie :

[1] 15

Un nom manquant se comporte différemment dans les deux formes : prices["milk"] renvoie NA, et prices[["milk"]] s’arrête avec l’erreur subscript out of bounds.

challenge icon

Défi

Facile

Complétez line_total(item, qty). La fonction définit le menu ci-dessous. Renvoyez le prix de item multiplié par qty, avec deux décimales : tea et 3 donnent 7.50.

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

Chaque article de l’entrée figure dans le menu. Le code fourni lit l’article et la quantité, puis affiche la valeur renvoyée.

Essayez vous-même

line_total <- function(item, qty) {
  menu <- c(tea = 2.5, coffee = 3, cake = 4.25, soup = 6)
  # Écrivez votre code ici
  ""
}

# Code d'entrée/sortie fourni : gardez-le tel quel
input <- suppressWarnings(readLines(file("stdin")))
cat(line_total(input[1], as.numeric(input[2])), sep = "\n")
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et flux d’exécution

Entraînez-vous par vous-même : Compilateur R en ligne