CHAÎNES DE CARACTÈRES ER DATES EN R

Page 1 sur 44Lecteur de document UniversityLib

CHAÎNES DE CARACTÈRES ER DATES EN R

Programming with R - String and Date Operations · course

Voir tous les documents en programmation

CHAÎNES DE CARACTÈRES ER DATES EN R

MODULE 5

118

Opérations sur les chaines de caractères

  • Dans ce chapitre, nous allons voir plusieurs fonctions pour manipuler des chaînes dans le langage de programmation R.

  • Pour commencer, nous allons lire du texte à partir d'un fichier afin de démontrer les opérations sur les chaînes.

  • La variable summary contiendra un vecteur avec 3 éléments qui représentent les 3 lignes du fichier. Vous pouvez voir à quoi ressemblent ces lignes dans la diapositive suivante.

CHAÎNES DE CARACTÈRES ER DATES EN R 119

Opérations sur les chaines de caractères

CHAÎNES DE CARACTÈRES ER DATES EN R 120

Opérations de base sur les chaînes

  • Si vous souhaitez compter le nombre de caractères dans une chaîne, vous pouvez utiliser la fonction nchar tout en passant la chaîne comme argument.

Comme vous pouvez le voir, le premier élément de notre vecteur est

une chaîne de 450 caractères.

CHAÎNES DE CARACTÈRES ER DATES EN R 121

Opérations de base sur les chaînes

  • Si vous souhaitez convertir tous les caractères d'une chaîne en majuscules, vous pouvez utiliser la fonction toupper.

  • Vous pouvez voir à quoi cela ressemblerait ici.

CHAÎNES DE CARACTÈRES ER DATES EN R 122

Opérations de base sur les chaînes

  • De même, vous pouvez utiliser la fonction tolower si vous souhaitez convertir tous les caractères de la chaîne en minuscules.

CHAÎNES DE CARACTÈRES ER DATES EN R 123

Opérations de base sur les chaînes

  • Afin de remplacer un ensemble spécifique de caractères dans une chaîne, vous pouvez utiliser la fonction chartr.

  • Le premier argument est une chaîne contenant les caractères que vous souhaitez remplacer.

  • Le deuxième argument est une chaîne contenant les caractères de remplacement.

  • Et le dernier argument est la chaîne sur laquelle vous souhaitez appliquer l'opération.

  • Vous pouvez voir dans la diapositive suivante (exemple) comment la fonction a remplacé chaque caractère d'espace par un trait d'union.

CHAÎNES DE CARACTÈRES ER DATES EN R 124

Opérations de base sur les chaînes

CHAÎNES DE CARACTÈRES ER DATES EN R 125

Opérations de base sur les chaînes

  • La fonction strsplit vous permet de séparer une chaîne en utilisant une sorte d'expression. Observons la syntaxe ici.

CHAÎNES DE CARACTÈRES ER DATES EN R 126

Opérations de base sur les chaînes

  • Le premier argument est la chaîne à fractionner et le second argument est l'expression que nous voulons utiliser pour effectuer le fractionnement.

  • Dans ce cas, nous divisons la chaîne par le caractère espace.

  • Cela retourne une liste, donc pour former un vecteur de caractères, nous devons utiliser la fonction unlist.

  • Lorsque vous regardez la sortie, vous remarquerez que le vecteur a un élément par mot, car dans la chaîne d'origine, chaque mot est séparé par un caractère d'espace.

CHAÎNES DE CARACTÈRES ER DATES EN R 127

Opérations de base sur les chaînes

  • Le vecteur word_list peut être trié, en le passant dans la fonction sort. Cela classera les éléments par ordre alphabétique.

CHAÎNES DE CARACTÈRES ER DATES EN R 128

Opérations de base sur les chaînes

  • Nous pouvons également concaténer les éléments d'un vecteur de caractères en utilisant la fonction paste.

  • L'argument collapse détermine la valeur de chaîne qui séparera les éléments individuels. Dans notre cas, nous allons simplement les séparer par un seul caractère d'espace.

  • Voir la sortie de la diapositive suivante qui est une chaîne unique représentant notre liste triée par ordre alphabétique.

Publicité

CHAÎNES DE CARACTÈRES ER DATES EN R 129

Opérations de base sur les chaînes

CHAÎNES DE CARACTÈRES ER DATES EN R 130

Opérations de base sur les chaînes

  • Pour isoler une partie spécifique d'une chaîne, vous pouvez utiliser la fonction substr. Passez simplement les indices de début et de fin du segment souhaité, et ce segment contigu sera généré.

  • N otez que cette sous-c h a ne î part cu i liè re a un caract è re d' espacement au début et à la fin. Pour s'en débarrasser, nous pouvons utiliser la fonction trimws, qui supprime tous les espaces du début et de la fin d'une chaîne.

CHAÎNES DE CARACTÈRES ER DATES EN R 131

Opérations de base sur les chaînes

  • Il peut arriver que vous souhaitiez former une sous-chaîne en comptant à partir de la dernière position. Par exemple, vous voudrez peut-être les 8 derniers caractères, comme ceux que vous voyez ici.

  • Pour ce faire, vous devrez utiliser la fonction str_sub de la bibliothèque stringr.

CHAÎNES DE CARACTÈRES ER DATES EN R 132

Opérations de base sur les chaînes

  • Remarquez comment les arguments de point de départ et de fin sont négatifs dans ce cas.

  • Ainsi , le p oint de dé p art est le huitième caractère à p artir du dernier

point de la chaîne et le point final est l'index du dernier caractère.

  • Vous pouvez voir dans la sortie que cela a réussi à récupérer les huit derniers caractères.

CHAÎNES DE CARACTÈRES ER DATES EN R 133

Le format de dates en R

  • Dans ce chapitre, nous allons voir comment travailler avec des dates de calendrier dans le langage de programmation R.

  • Les dates sont des données importantes particulièrement lorsqu’ils s’agi de données dépendantes du temps.

  • Les opérations sur les dates ne sont pas triviales et les dates sont présentées sous différents formats qu’il fau savoir gérer.

CHAÎNES DE CARACTÈRES ER DATES EN R 134

La classe Date

  • R a une classe d'objets spécialisée pour conserver les dates d'un calendrier.

  • La sortie ici peut simplement ressembler à des chaînes, mais R représente en fait une date comme le nombre de jours depuis le 1er janvier 1970 .

  • Cette représentation particulière des dates est devenue une norme dans les environnements informatiques.

  • Notez que les dates sont basées sur le calendrier grégorien.

CHAÎNES DE CARACTÈRES ER DATES EN R 135

Ensemble de données d'acteurs primés aux Oscars

  • Nous allons pratiquer le format de date, mais commençons par charger une base de données d'acteurs primés aux Oscars.

  • Comme vous pouvez le voir, la date de naissance de chaque acteur est représentée dans un format non standard.

CHAÎNES DE CARACTÈRES ER DATES EN R 136

Ensemble de données d'acteurs primés aux Oscars

  • En vérifiant la structure de la trame de données avec la fonction str, on voit que la colonne Date.of.Birth est de type int.

  • Il s'avère que ce nombre est représenté au format horaire UNIX, une autre norme qui compte le nombre de secondes depuis le début du 1

janvier 1970.

CHAÎNES DE CARACTÈRES ER DATES EN R 137

Conversion du time d’UNIX en date

  • Nous allons donc devoir reformater ces valeurs pour travailler avec la représentation de dates de R.

  • Pour ce faire, nous utiliserons la fonction as.POSIXct. POSIX est juste un autre standard de format de date que R utilise pour sa structure de classe Date.

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

  • Mais en plus de passer dans la colonne que nous voulons convertir, nous devons également fournir à la fonction un point de référence, qui sera le 1er janvier 1970.

  • La sortie de la fonction sera un horodatage complet, qui a le structure suivante :

Publicité

YYYY-MM-DD HH:MM:SS

CHAÎNES DE CARACTÈRES ER DATES EN R 138

Conversion du time d’UNIX en date

  • Puisque nous ne traitons que des dates de calendrier, nous n'avons pas besoin des heures, des minutes et des secondes.

  • Nous devrons donc utiliser une fonction as.Date pour obtenir le format dont nous avons besoin.

  • La fonction as.Date prend une chaîne de caractères ou un horodatage POSIX et le convertit en un objet de la classe Date.

  • Vous pouvez voir le résultat final dans la sortie ici.

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

CHAÎNES DE CARACTÈRES ER DATES EN R 139

Ensemble de données d'actrices primées aux Oscars

  • Considérons maintenant une autre date frame qui concerne des informations sur les actrices oscarisées.

  • Comme précédemment, nous pouvons passer ce data frame à la fonction str afin de voir sa structure.

CHAÎNES DE CARACTÈRES ER DATES EN R 140

Ensemble de données d'actrices primées aux Oscars

  • Nous avons rencontré un autre problème, car la colonne Date.of.Birth contient des facteurs, et non la classe Date.

  • Nous devrons donc également convertir cette colonne et encore une fois, nous utiliserons as.Date, qui fonctionne à la fois avec les facteurs

et les types de caractères.

  • Le paramètre supplémentaire indique à la fonction de s'attendre à ce que le format de la date soit "Année Mois Jour", dans cet ordre, séparé par des barres obliques

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

CHAÎNES DE CARACTÈRES ER DATES EN R 141

Formatage de date

  • Regardons un autre exemple pour comprendre le paramètre de formatage de la date.

  • Le premier argument de la fonction est la chaîne que nous voulons transformer en objet date .

  • Le deuxième argument indique à nouveau à R que le premier argument a la structure "jour mois année" séparée par des barres obliques.

  • Comme vous pouvez le voir ici, R a analysé avec succès notre chaîne pour former un objet Date.

CHAÎNES DE CARACTÈRES ER DATES EN R 142

Formatage de date

  • R vous permet de spécifier le format en détail à l'aide des codes suivants:

  • Par défaut, R suppose que la date au format "année mois jour" séparée par des tirets ou des barres obliques.

  • Notez que puisque notre deuxième paramètre a un «y» minuscule pour l'année, R savait chercher une représentation d'année à deux chiffres.

CHAÎNES DE CARACTÈRES ER DATES EN R 143

Fonction utiles pour la gestion de dates

  • Vous pouvez utiliser plusieurs opérations sur les objets Date.

  • Dans l’exemple suivant, nous soustrayons simplement une date d'une autre pour obtenir le nombre de jours entre les deux dates.

Dans cet autre exemple, nous utilisons un comparateur pour voir si une

date succède à une autre.

CHAÎNES DE CARACTÈRES ER DATES EN R 144

Fonction utiles pour la gestion de dates

  • Vous pouvez également soustraire un nombre à une date. Dans ce cas, le résultat est une date qui remonte à 14 jours.

  • Il existe également trois fonctions qui renvoient la date et l'heure en fonction du système . Ces fonctions sont présentées dans la diaposittive

suivante.

CHAÎNES DE CARACTÈRES ER DATES EN R 145

Fonction utiles pour la gestion de dates

  • La fonction Sys.Date renvoie la date actuelle sous la forme d'un objet de classe Date.

  • La fonction date renvoie une chaîne de caractères décrivant la date et l ' heure actuelles .

Publicité

  • Et Sys.time renvoie l'heure actuelle dans un format d'horodatage POSIX.

  • CHAÎNES DE CARACTÈRES ER DATES EN R 146

    Fonction utiles pour la gestion de dates

    • Vous pouvez également appliquer des conversions utiles à un objet de classe de date.

    • La fonction weekdays convertit la date en une chaîne représentant le jour de la semaine auquel la date tombe.

    • La fonction months fonctionne de la même manière.

    • Et il y a aussi une fonction "quarts", qui renvoie une chaîne contenant le trimestre dans lequel la date tombe.

    CHAÎNES DE CARACTÈRES ER DATES EN R 147

    Les expressions régulières en R

    • Dans ce chapitre, nous allons voir comment travailler avec des expressions régulières dans le langage de programmation R.

    • Pour ce faire, nous allons utiliser le data frame simple contenant quelques noms et adresses e-mail de différentes régions.

    CHAÎNES DE CARACTÈRES ER DATES EN R 148

    Les expressions régulières en R

    • Supposons que notre objectif soit d'effectuer une analyse sur chacun des domaines des adresses e-mail.

    • Le problème est que certaines des adresses e-mail ont des différences régionales, de sorte que les URL peuvent différer, comme celles que vous voyez ici.

    John Doe [email protected]

    Mark Mann [email protected]

    CHAÎNES DE CARACTÈRES ER DATES EN R 149

    Les expressions régulières en R

    • Donc, ce que nous devons faire est d'isoler tous les caractères entre le signe «arobase» et le caractère point "."

    John Doe [email protected]

    Jane Doe [email protected]

    Mark Mann [email protected]

    Cela semble compliqué au début car les URL peuvent avoir des

    longueurs variables ou des caractères « étranges », les expressions régulières sont donc parfaites pour une tâche comme celle-ci.

    CHAÎNES DE CARACTÈRES ER DATES EN R 150

    Les expressions régulières en R

    • Les expressions régulières sont utilisées pour faire correspondre les modèles dans les chaînes et le texte.

    • Supposons que vous deviez exprimer la structure d'une adresse e-mail, comme celle-ci, mais dans le cas général.

    [email protected]

    Un e-mail peut être exprimé comme un ensemble de caractères, suivi

    de @, suivi d'un autre ensemble de caractères.

    • Ce que nous venons de décrire pourrait être écrit sous forme d’une d'expression régulière comme suit.

    .+@.+

    • Nous avons le signe @ au milieu, avec le texte avant et après.

    CHAÎNES DE CARACTÈRES ER DATES EN R 151

    Les expressions régulières en R

    • Examinons de plus près ce que font tous ces symboles.

    • Le premier symbole de la chaîne d'expression régulière est un point, mais cela a une signification particulière. Un point est comme un joker, qui correspond à n'importe quel caractère.

    • Le signe plus est également un caractère spécial utilisé pour faire correspondre le motif précédent une ou plusieurs fois. Ainsi, un point suivi d'un signe plus correspondra à n'importe quelle séquence d'un ou plusieurs caractères.

    • Le @ correspond simplement à un signe @ dans la chaîne.

    CHAÎNES DE CARACTÈRES ER DATES EN R 152

    Les expressions régulières en R

    • Rappelez-vous que notre objectif est d'isoler le texte entre le signe @ et le caractère point, mais puisque le caractère point a une signification particulière, nous devrons modifier un peu notre expression.

    @.+\.

    • Remarquez que dans cette expression, nous avons ajouté deux back slash avant le caractère point. Cela garantit que le caractère de point

    Publicité

    lui-même sera mis en correspondance dans une chaîne, plutôt que le point agissant comme un joker.

    • Ainsi, l'expression que vous voyez ici correspondra à un @, suivi d'un ou plusieurs caractères, suivi d'un point. C'est exactement ce dont nous avons besoin pour notre problème.

    • R fournit plusieurs fonctions qui utilisent des expressions régulières e nous en verrons les plus importantes dans ce qui suit.

    CHAÎNES DE CARACTÈRES ER DATES EN R 153

    Les expressions régulières en R

    • La fonction grep prend au moins deux entrées: l'expression régulière et une liste de chaînes que vous souhaitez vérifier pour une correspondance.

    • Notez q ue cette ex p ression ré g ulière contient un astéris q ue p lutôt q u'un

    signe plus. Un astérisque correspondra à zéro ou plus de l'élément précédent, plutôt qu'à un ou plusieurs de l'élément précédent. À part cette différence subtile, leur comportement est le même.

    • La sortie affiche les positions de liste des chaînes qui correspondent à cette expression régulière.

    CHAÎNES DE CARACTÈRES ER DATES EN R 154

    Les expressions régulières en R

    • Vous pouvez utiliser le paramètre value pour indiquer à la fonction de générer les chaînes correspondantes plutôt que d’indiquer leurs positions.

    CHAÎNES DE CARACTÈRES ER DATES EN R 155

    Les expressions régulières en R

    • Vous pouvez également remplacer les chaînes trouvées par l'expression régulière en utilisant la fonction gsub.

    • Le deuxième argument est la chaîne de remplacement. Dans notre cas, tous les caractères après un @ seront remplacés par new . com .

    • Remarquez comment la deuxième chaîne n'a pas été affectée car il n'y avait pas de correspondance d'expression régulière.

    CHAÎNES DE CARACTÈRES ER DATES EN R 156

    Les expressions régulières en R

    • Afin d'extraire les chaînes correspondantes, vous pouvez utiliser la fonction regexpr, qui est comme un grep plus détaillé.

    • Cette fonction trouvera les sous-chaînes correspondantes. On passe ensuite la liste des chaînes et la liste des correspondances à la fonction regmatches, qui nous donne le résultat souhaité.

    CHAÎNES DE CARACTÈRES ER DATES EN R 157

    Les expressions régulières en R

    • Nous sommes maintenant prêts à résoudre notre problème.

    • Nous appliquons une expression régulière à la colonne e-mail, en veillant à tout isoler du signe @ au point.

    • Nous extrayons ensuite les sous-chaînes correspondantes et les ajouterons à une nouvelle colonne appelée domain.

    Et voici notre base de données avec la nouvelle colonne . Cette structure est désormais bien adaptée à l'analyse des données.

    CHAÎNES DE CARACTÈRES ER DATES EN R 158

    Les expressions régulières en R

    CHAÎNES DE CARACTÈRES ER DATES EN R 159

    Les expressions régulières en R

    • Et voici notre base de données avec la nouvelle colonne. Cette structure est désormais bien adaptée à l'analyse des données.

    CHAÎNES DE CARACTÈRES ER DATES EN R 160

    Application des expressions régulières

    • Nous nous sommes principalement concentrés sur l'utilisation d'expressions régulières pour l'extraction de données, mais elles sont utilisées dans une grande variété de domaines,

      • Extraction de données.

      • Nettoyage des données.

      • Anal y se de données.

      • Validation de données.

      • Text Mining

      • Parsing

    CHAÎNES DE CARACTÈRES ER DATES EN R 161