Remplacer du texte
Fait partie de la section Logique et flux d’exécution du Journey R de Coddy. Leçon 5 sur 64.
sub(pattern, replacement, x) remplace la première correspondance dans chaque chaîne, et gsub() remplace toutes les correspondances. Comme avec grepl(), fixed = TRUE traite le motif comme du texte brut.
date <- "2024-01-15"
print(sub("-", "/", date, fixed = TRUE))
print(gsub("-", "/", date, fixed = TRUE))Sortie :
[1] "2024/01-15"
[1] "2024/01/15"Remplacer par une chaîne vide supprime les correspondances. Cela nettoie le texte avant de le convertir en nombre :
price <- "$1,299.00"
clean <- gsub(",", "", sub("$", "", price, fixed = TRUE), fixed = TRUE)
print(clean)
print(as.numeric(clean) * 2)Sortie :
[1] "1299.00"
[1] 2598Sans fixed = TRUE, le motif est une expression régulière. Deux éléments utiles : [0-9] correspond à n’importe quel chiffre, et + répète l’élément qui le précède une ou plusieurs fois, donc " +" correspond à une suite d’espaces.
msg <- "call me at 555 0199"
print(gsub(" +", " ", msg))
print(gsub("[0-9]", "#", msg))Sortie :
[1] "call me at 555 0199"
[1] "call me at ### ####"Comme les autres fonctions de chaînes de caractères, sub() et gsub() fonctionnent sur chaque élément d’un vecteur :
codes <- c("a-1", "b-22", "c-3")
print(gsub("-", "", codes, fixed = TRUE))
print(sub("-[0-9]+", "", codes))Sortie :
[1] "a1" "b22" "c3"
[1] "a" "b" "c"Défi
FacileComplétez slugify(title). Renvoyez le titre en minuscules, sans espaces au début ni à la fin, et en remplaçant chaque suite d’espaces par un seul - : Hello World devient hello-world.
Le code fourni lit le titre et affiche la valeur renvoyée.
Essayez vous-même
slugify <- function(title) {
# Écrivez votre code ici
title
}
# Code d'entrée/sortie fourni : gardez-le tel quel
input <- suppressWarnings(readLines(file("stdin")))
cat(slugify(input[1]), sep = "\n")
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
1Les chaînes en profondeur
Sous-chaînes avec substr()Mise en forme avec sprintf()Scinder et joindreRechercher dans les chaînesRemplacer du texteRécapitulatif - Créateur de nom d'utilisateur4Matrices
Créer des matricesIndexer des matricesRécapitulatifs des lignes et des colonnesArithmétique matricielleRécapitulatif - Plan de salle7La famille Apply
lapply et sapplyMap et mapplyFilter et FindReduceRécapitulatif - Pipeline de données10Structures de contrôle avancées
La fonction switch()ifelse() vectorisérepeat et breakFonctions récursivesRécapitulatif – Classificateur de notes2Recherches par clé-valeur
Recherches dans des vecteurs nommésVérifier les clésAjouter et supprimer des clésParcourir les nomsRécapitulatif - Bureau des stocks5Projet - Carnet de notes
Ajouter des élèvesEnregistrer les notes3Ensembles et comptage
Valeurs uniquesOpérations sur les ensemblesTests d’appartenanceCompter avec table()Récapitulatif - Invités à l’événement6Les fonctions comme valeurs
Fonctions anonymesPasser des fonctionsRetourner des fonctionsFermetures avec étatRécapitulatif - Règles de remise9Data Frames
Créer des Data FramesColonnes et lignesFiltrer les lignesAjouter et trierRécapitulatif - Rapport des ventes12Projet - Suivi des dépenses
Enregistrer les dépensesDépenses totalesEntraînez-vous par vous-même : Compilateur R en ligne