Menu
Coddy logo textTech

Scinder et joindre

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

strsplit(x, split) découpe une chaîne à chaque séparateur. Elle renvoie une liste contenant un vecteur de caractères par chaîne d’entrée. Utilisez donc [[1]] pour obtenir les éléments d’une seule chaîne.

csv <- "red,green,blue"
parts <- strsplit(csv, ",")[[1]]
print(parts)
print(length(parts))

Sortie :

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

paste() fonctionne dans l’autre sens. Avec collapse, il joint les éléments d’un vecteur en une seule chaîne, avec le texte collapse entre eux. sep est placé entre les arguments, élément par élément.

words <- c("one", "two", "three")
print(paste(words, collapse = "-"))
print(paste(words, 1:3, sep = "_"))

Sortie :

[1] "one-two-three"
[1] "one_1"   "two_2"   "three_3"

Le texte saisi comporte souvent des espaces autour des séparateurs. trimws() supprime les espaces au début et à la fin de chaque élément :

raw <- "  apples , pears,plums  "
items <- trimws(strsplit(raw, ",")[[1]])
print(items)
print(paste(rev(items), collapse = " | "))

Sortie :

[1] "apples" "pears"  "plums" 
[1] "plums | pears | apples"

strsplit() sur un vecteur renvoie un élément de liste par chaîne, de sorte que chaque ligne d’entrée conserve ses propres éléments :

lines <- c("a,b", "c,d,e")
parts <- strsplit(lines, ",")
print(length(parts))
print(parts[[2]])

Sortie :

[1] 2
[1] "c" "d" "e"
challenge icon

Défi

Facile

Complétez hashtags(line). La ligne contient des tags séparés par des virgules, éventuellement entourés d’espaces. Renvoyez une chaîne contenant chaque tag précédé de #, séparés par des espaces simples : r, data ,stats devient #r #data #stats.

Le code fourni lit la ligne et affiche la valeur renvoyée.

Essayez vous-même

hashtags <- function(line) {
  # Écrivez votre code ici
  line
}

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