Menu
Coddy logo textTech

Parcourir les noms

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

Une boucle for parcourant names(x) visite chaque clé, et x[[key]] donne la valeur correspondant à cette clé :

scores <- c(ada = 91, bo = 78, cy = 85)
for (name in names(scores)) {
  cat(name, "scored", scores[[name]], "\n")
}

Sortie :

ada scored 91 
bo scored 78 
cy scored 85 

Les entrées conservent l’ordre dans lequel elles ont été ajoutées. Parcourez sort(names(x)) pour obtenir l’ordre alphabétique :

scores <- c(cy = 85, ada = 91, bo = 78)
for (name in sort(names(scores))) {
  cat(name, scores[[name]], "\n")
}

Sortie :

ada 91 
bo 78 
cy 85 

Parcourir l’entrée en boucle et mettre à jour une table de recherche permet de compter combien de fois chaque valeur apparaît. La première fois qu’un mot est rencontré, il reçoit la valeur 1, puis cette valeur augmente de 1 :

words <- c("red", "blue", "red", "green", "red")
counts <- c()
for (w in words) {
  if (w %in% names(counts)) {
    counts[w] <- counts[w] + 1
  } else {
    counts[w] <- 1
  }
}
print(counts[["red"]])
print(names(counts))

Sortie :

[1] 3
[1] "red"   "blue"  "green"

Pour construire les lignes de sortie, rassemble-les dans un vecteur à l’intérieur de la boucle et renvoie-les ou affiche-les à la fin :

scores <- c(ada = 91, bo = 78)
lines <- c()
for (name in names(scores)) {
  lines <- c(lines, paste0(name, ": ", scores[[name]]))
}
cat(lines, sep = "\n")

Sortie :

ada: 91
bo: 78
challenge icon

Défi

Facile

Complétez word_counts(words). Renvoyez une ligne par mot distinct, dans l’ordre alphabétique, au format word: count.

Le code fourni lit les mots sur une seule ligne, séparés par des espaces, et affiche chaque ligne renvoyée.

Essayez vous-même

word_counts <- function(words) {
  # Écrivez votre code ici
  character(0)
}

# Code d'entrée/sortie fourni : gardez-le tel quel
input <- suppressWarnings(readLines(file("stdin")))
cat(word_counts(strsplit(input[1], " ")[[1]]), 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