Formation R

Manipulation de chaîne de charactère et des dates

Pourquoi manipuler des chaînes de charactères?

  • modifier du texte
  • Effectuer des vérifications
  • Faire des corrections

Utilisation de stringr

Pour manipuler les caractères:

library(stringr)

str_length(x)   # nombre de caractères
str_trim(x)     # enlever les blancs droite/gauche
str_to_lower(x) # caratère en minuscule
str_to_upper(x) # caratère en majuscule
str_sub(x, start, end) #le debut et la fin

str_detect(x, pattern) # détecter des expressions (lettres/mots/chiffres)

str_replace(x, pattern, replacement) # remplacer le premier élément correspondant au pattern dans l'expression
str_replace_all(x, pattern, replacement) # remplacer tous les éléments correspondant au pattern dans l'expression 

str_remove(x, pattern) # supprimer le premier élément correspondant au pattern dans l'expression
str_remove_all(x, pattern, replacement) # supprimer tous les éléments correspondant au pattern dans l'expression 

Expression Régulière

library(stringr)
# Utiliser \' peut être une alternative pour l'apostrophe
x <- c('Bonjour le STATEC', 'Formation-R', 'Les statistiques pour tous',
       'Or le taux  d\'inflation augmente',
       'ou sont les statisticiens?', "il n'y a rien de fou")
pattern <- 'ou'
str_detect(x, pattern) # détecter des expressions (lettres/mots/chiffres)
## [1]  TRUE FALSE  TRUE FALSE  TRUE  TRUE

Choix du pattern

  • 'ou' : la séquence ou
  • '^ou' : commence par ou
  • 'ou$' : termine par ou
  • '^o.*u' : séquence qui comprend un o et un u

Autre Pattern Possible



  • '[abc]' : détecte a, b, or c
  • '[a-z]' : détecte tous les charactères entre a et z
  • '[^abc]': détecte tous les charactères sauf a, b, ou c
  • '[\^\-]': détecte ^ or -

Classe de Caractères



  • '[:punct:]' : ponctuations
  • '[:alpha:]' : lettres
  • '[:lower:]' : lettres minuscules
  • '[:upper:]' : lettres majuscules
  • '[:digit:]' : chiffres
  • '[:alnum:]' : chiffres et lettres
  • '[:space:]' : espaces
  • '[:blank:]' : espaces et tabulations

1.3.1 Instructions 1

  • 1) Lire le package {stringr}
  • 2) Associez un objet à accidents2019.csv
  • 3) Pour lon. et lat.: remplacer , par des .
  • 4) Assurez-vous que ces variables soient numériques
  • 5) Créer une variable heure et une variable minute

1.3.2 Instructions 2

  • 1) Lire le fichier IMDB.csv
  • 2) Voir un aperçu du fichier

1.3.3 Modification à Effectuer

  • 1) Enlever les caracteres \< br /\>
  • 2) compter le nombre de caractères
  • 3) Remplacer "\'s" par " is"
  • 4) Remplacer "\'ll" par " will"

Manipulation des dates

Simplifier la lecture des dates avec {lubridate}

library(lubridate)
# bien lire une date quelque soit le format
ymd(c('2002-03-04','2002/3/4','20020304')) #year month day 
ydm(c('2002-04-03','2002/4/3','20020403')) #year day month 
dmy(c('04-03-2002','04/3/2002','04032002')) #year day month 

# pluriel pour calculer
ymd('2002-03-04')+ days(4)
ymd('2002-03-04')+ weeks(4)
ymd('2002-03-04')+ months(4)
ymd('2002-03-04')+ years(4)

# singulier pour extraire
day('2002-03-04')
wday('2002-03-04', label=TRUE, week_start = 1)
week('2002-03-04')
month('2002-03-04', label=TRUE, abbr = FALSE)

# extraire un trimestre/semestre
quarter('2002-03-04')
semester('2002-03-04', with_year = TRUE)

Instructions

  • 1) Ouvrir t_billboard
  • 2) Ajouter la colonne n_week représentant le numero de semaine
  • 3) S’assurer que n_week soit numérique as.numeric()
  • 4) Ajouter la colonne date.d correpondant à la date de la semaine (utiliser +days() ou +weeks())

Source

Exemple RegEx
Fonction stringr
Fonction lubridate

Contact

Kevin Rosamont Prombo