CHAÎNES DE CARACTÈRES ER DATES EN R

Ce matériel couvre les manipulations de chaînes de caractères et la gestion des dates dans le langage de programmation R. Il s'adresse aux étudiants et chercheurs souhaitant maîtriser les opérations de base sur les chaînes, le formatage et la conversion des dates, ainsi que l'utilisation des expressions régulières pour l'analyse et le traitement de données textuelles.

D'après le document CHAÎNES DE CARACTÈRES ER DATES EN R

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

CHAÎNES DE CARACTÈRES ER DATES EN R

Document source

CHAÎNES DE CARACTÈRES ER DATES EN R

Programming, R · PDF · 44 pages · 2011

Afficher l'aperçu du document

Consulter le document original →

Ce matériel couvre les manipulations de chaînes de caractères et la gestion des dates dans le langage de programmation R. Il s'adresse aux étudiants et chercheurs souhaitant maîtriser les opérations de base sur les chaînes, le formatage et la conversion des dates, ainsi que l'utilisation des expressions régulières pour l'analyse et le traitement de données textuelles.

Opérations sur les chaînes de caractères en R

Pour manipuler des chaînes de caractères en R, plusieurs fonctions de base sont disponibles. On peut commencer par lire un texte depuis un fichier avec la fonction readLines, qui retourne un vecteur de chaînes, chaque élément correspondant à une ligne du fichier.

summary <- readLines("/file_path/The_Artist.txt")
summary

Fonctions de base pour les chaînes

  • Compter le nombre de caractères : la fonction nchar retourne la longueur d'une chaîne.
nchar(summary[1])
# [1] 450
  • Conversion en majuscules : toupper transforme tous les caractères en majuscules.
toupper(summary[1])
  • Conversion en minuscules : tolower transforme tous les caractères en minuscules.
tolower(summary[1])
  • Remplacement de caractères : la fonction chartr remplace un ensemble de caractères par un autre dans une chaîne.
chartr(" ", "-", summary[1])

Dans cet exemple, tous les espaces sont remplacés par des traits d'union.

  • Fractionner une chaîne : strsplit divise une chaîne selon un séparateur donné, ici un espace.
char_list <- strsplit(summary[1], " ")
word_list <- unlist(char_list)
word_list

Le résultat est un vecteur où chaque élément est un mot extrait de la chaîne.

  • Trier un vecteur de chaînes : la fonction sort classe les éléments par ordre alphabétique.
sorted_list <- sort(word_list)
sorted_list
  • Concaténer un vecteur en une chaîne : la fonction paste avec l'argument collapse permet de recomposer une chaîne à partir d'un vecteur, séparant les éléments par un délimiteur.
paste(sorted_list, collapse = " ")
  • Extraire une sous-chaîne : la fonction substr extrait une portion d'une chaîne en précisant les indices de début et de fin.
sub_string <- substr(summary[1], start = 4, stop = 50)
sub_string
# [1] "  Artist is a 2011 French romantic comedy-drama "

Pour supprimer les espaces en début et fin de chaîne, on utilise trimws :

trimws(sub_string)
# [1] "Artist is a 2011 French romantic comedy-drama"
  • Extraire une sous-chaîne en partant de la fin : la fonction str_sub du package stringr permet d'extraire des caractères en utilisant des indices négatifs.
library(stringr)
str_sub(summary[1], -8, -1)
# [1] "talkies."

Les indices négatifs indiquent la position à partir de la fin de la chaîne.

Gestion des dates en R

Les dates sont des données essentielles pour les analyses temporelles. R dispose d'une classe spécialisée Date qui représente les dates comme le nombre de jours écoulés depuis le 1er janvier 1970, selon le calendrier grégorien.

Conversion de formats de dates

Les données peuvent provenir de formats variés, comme le format UNIX qui compte les secondes depuis le 1er janvier 1970. Par exemple, une colonne de dates au format UNIX peut être convertie en date R avec :

actors.birthday <- as.POSIXct(bestActors$Date.of.Birth, origin = "1970-01-01")

Cette conversion produit un horodatage complet (YYYY-MM-DD HH:MM:SS). Pour obtenir uniquement la date, on applique :

actors.birthday <- as.Date(actors.birthday)

Dans le cas où les dates sont stockées en facteur avec un format spécifique, on peut convertir avec un format personnalisé :

actresses.birthday <- as.Date(actresses.birthday, "%Y/%m/%d")

Exemple de conversion d'une chaîne en date avec un format jour/mois/année :

as.Date("27/06/94", "%d/%m/%y")
# "1994-06-27"

Codes de formatage des dates

  • %Y : année sur 4 chiffres
  • %y : année sur 2 chiffres
  • %m : mois sur 2 chiffres
  • %d : jour sur 2 chiffres

Par défaut, R attend un format "année-mois-jour" séparé par des tirets ou barres obliques.

Opérations sur les dates

  • Soustraction de dates : la différence entre deux dates donne un nombre de jours.
as.Date("1994/06/27") - as.Date("1959/01/01")
# Time difference of 12961 days
  • Comparaison de dates : on peut comparer deux dates avec les opérateurs classiques.
as.Date("1994/06/27") > as.Date("1959/01/01")
# TRUE
  • Soustraction d'un nombre à une date : pour reculer dans le temps.
as.Date("1994/06/27") - 14
# "1994-06-13"
  • Fonctions système pour la date et l'heure actuelles :
Sys.Date()
# "2020-08-10"

date()
# "Mon Aug 10 15:51:48 2020"

Sys.time()
# "2020-08-10 19:48:11 UTC"
  • Extraction d'informations sur une date :
weekdays(Sys.Date())
# "Monday"

months(Sys.Date())
# "August"

quarters(Sys.Date())
# "Q3"

Expressions régulières en R

Les expressions régulières permettent de rechercher et manipuler des motifs dans des chaînes de caractères. Elles sont particulièrement utiles pour extraire ou valider des données textuelles.

Exemple d'analyse d'adresses e-mail

Supposons que l'on souhaite extraire le domaine d'une adresse e-mail, c'est-à-dire la partie entre le signe @ et le point .. Les domaines peuvent varier en longueur et en caractères, ce qui rend les expressions régulières adaptées.

Une expression régulière simple pour un e-mail est :

.+@.+

Elle signifie : un ou plusieurs caractères, suivis de @, suivis d'un ou plusieurs caractères.

Pour isoler le texte entre @ et le point, on utilise :

@.+\\.

Les doubles backslash \\. échappent le point, qui est un caractère spécial signifiant "n'importe quel caractère".

Fonctions R utilisant les expressions régulières

  • grep : recherche les chaînes correspondant à une expression régulière et retourne leurs indices.
grep("@.*", c("[email protected]", "not an email", "[email protected]"))
# [1] 1 3
  • Avec l'argument value=TRUE, grep retourne les chaînes correspondantes :
grep("@.*", c("[email protected]", "not an email", "[email protected]"), value=TRUE)
# [1] "[email protected]" "[email protected]"
  • gsub : remplace les parties des chaînes correspondant à une expression régulière par une autre chaîne.
gsub("@.*", "@new.com", c("[email protected]", "not an email", "[email protected]"))
# [1] "[email protected]" "not an email" "[email protected]"
  • regexpr et regmatches : extraient les sous-chaînes correspondant à une expression régulière.
matches <- regexpr("@.*", c("[email protected]", "not an email", "[email protected]"))
regmatches(c("[email protected]", "not an email", "[email protected]"), matches)
# [1] "testing.com" "testing.com"

Application pratique

Pour extraire les domaines d'une colonne d'adresses e-mail dans un data frame email_df :

matches <- regexpr("@.*\\.", email_df[, 'Email'])
email_df[, 'Domain'] <- regmatches(email_df[, 'Email'], matches)

Cette nouvelle colonne Domain contient les domaines extraits, facilitant ainsi l'analyse des données.

Glossaire des termes clés

  • as.Date : fonction convertissant une chaîne ou un horodatage POSIX en objet Date.
  • as.POSIXct : fonction convertissant un nombre de secondes depuis 1970 en horodatage complet.
  • chartr : fonction remplaçant des caractères spécifiques dans une chaîne.
  • expressions régulières : motifs utilisés pour rechercher ou manipuler des chaînes de caractères.
  • gsub : fonction remplaçant toutes les occurrences d'un motif par une chaîne donnée.
  • grep : fonction recherchant les chaînes correspondant à un motif.
  • regexpr : fonction trouvant la position et la longueur de la première correspondance d'un motif.
  • regmatches : fonction extrayant les sous-chaînes correspondant à une expression régulière.
  • substr : fonction extrayant une sous-chaîne selon des indices de début et fin.
  • strsplit : fonction divisant une chaîne selon un séparateur.
  • str_sub : fonction du package stringr pour extraire des sous-chaînes avec indices négatifs possibles.
  • Sys.Date : fonction retournant la date actuelle.
  • Sys.time : fonction retournant la date et l'heure actuelles au format POSIX.
  • trimws : fonction supprimant les espaces en début et fin de chaîne.
  • vecteur : structure de données R contenant des éléments du même type.

Points clés à retenir

  • R propose de nombreuses fonctions pour manipuler efficacement les chaînes de caractères.
  • La gestion des dates en R nécessite souvent une conversion entre formats (UNIX, POSIX, Date).
  • Le format des dates peut être précisé par des codes (%Y, %m, %d, etc.) lors de la conversion.
  • Les expressions régulières sont un outil puissant pour extraire, valider et transformer des données textuelles.
  • Les fonctions grep, gsub, regexpr et regmatches facilitent l'utilisation des expressions régulières en R.
  • Les opérations sur les dates permettent de calculer des différences, comparer des dates et extraire des informations temporelles.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions