TP8
Ce TP permet de manipuler des fichiers texte dans R, d’effectuer des opérations sur des chaînes de caractères, puis d’écrire et d’enregistrer des données dans différents formats de fichiers. Il s’appuie sur un fichier texte contenant un résumé du film The Artist. Ce TP enseigne la lecture, la transformation et l’exportation de données textuelles en R.
D'après le document TP8
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source
Programming, Data Handling, Text Files · PDF · 4 pages
Afficher l'aperçu du document
Ce TP permet de manipuler des fichiers texte dans R, d’effectuer des opérations sur des chaînes de caractères, puis d’écrire et d’enregistrer des données dans différents formats de fichiers. Il s’appuie sur un fichier texte contenant un résumé du film The Artist. Ce TP enseigne la lecture, la transformation et l’exportation de données textuelles en R. Pour le réaliser, il faut avoir R installé et disposer du fichier The_Artist.txt.
Objectifs
- Lire un fichier texte ligne par ligne ou mot par mot dans R.
- Effectuer des opérations de base sur des chaînes de caractères (conversion en majuscules, minuscules, remplacement, découpage, tri, concaténation).
- Exporter des données dans des fichiers texte, CSV, Excel et RData.
- Utiliser des fonctions R natives et des bibliothèques externes pour manipuler et sauvegarder des données.
Prérequis et installation
- Installation de R (version non spécifiée, mais compatible avec les fonctions utilisées).
- Fichier texte The_Artist.txt disponible dans le répertoire de travail.
- Connaissances de base sur la manipulation des vecteurs et des chaînes de caractères en R.
- Pour l’export Excel, installation de la bibliothèque
xlsxviainstall.packages("xlsx").
Lecture de fichiers texte
Commencez par lire le fichier The_Artist.txt avec la fonction readLines() qui lit le fichier ligne par ligne et retourne un vecteur de chaînes de caractères.
my_data <- readLines("The_Artist.txt")
my_data
Vérifiez le nombre d’éléments (lignes) dans ce vecteur :
length(my_data)
Vous devriez obtenir 5, indiquant que le fichier contient 5 lignes.
Pour vérifier la taille du fichier en octets, utilisez :
file.size("The_Artist.txt")
La sortie devrait être 1065, correspondant à la taille du fichier.
Alternativement, vous pouvez lire le fichier mot par mot avec la fonction scan() :
my_data1 <- scan("The_Artist.txt", "")
my_data1
Vérifiez la longueur de ce vecteur :
length(my_data1)
Cette valeur correspond au nombre total de mots dans le fichier.
Opérations sur chaînes de caractères
Voici quelques manipulations de base sur les chaînes extraites :
- nchar() : nombre de caractères dans une chaîne. Exemple :
nchar(my_data[1])
- toupper() : conversion en majuscules.
toupper(my_data[3])
- tolower() : conversion en minuscules.
tolower(my_data[3])
- chartr() : remplacement de caractères. Exemple pour remplacer les espaces par des traits d’union dans la première ligne :
chartr(" ", "-", my_data[1])
- strsplit() : découpage d’une chaîne en mots selon un séparateur (ici l’espace). Exemple :
character_list <- strsplit(my_data[1], " ")
word_list <- unlist(character_list)
word_list
La fonction strsplit() retourne une liste, on utilise unlist() pour obtenir un vecteur simple de mots.
- sort() : tri alphabétique des mots :
sorted_list <- sort(word_list)
sorted_list
- paste() : concaténation des mots triés en une seule chaîne, séparés par des espaces :
paste(sorted_list, collapse = " ")
- substr() : extraction d’une sous-chaîne. Exemple pour extraire les caractères de la 4e à la 50e position dans la première ligne :
sub_string <- substr(my_data[1], start = 4, stop = 50)
sub_string
- trimws() : suppression des espaces en début et fin de chaîne :
trimws(sub_string)
- str_sub() (bibliothèque
stringr) : extraction de sous-chaînes à partir de la fin. Exemple :
library(stringr)
str_sub(my_data[1], -8, -1)
Cette commande extrait les 8 derniers caractères de la première ligne, ici donnant "talkies."
Écriture et enregistrement dans les fichiers
Après avoir manipulé les données, vous pouvez les sauvegarder dans différents formats.
Exportation en fichier texte
Créons une matrice et sauvegardons-la dans un fichier texte :
m <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 2, ncol = 3)
m
write(m, file = "my_text_file.txt", ncolumns = 3, sep = " ")
Pour écrire une chaîne de caractères (par exemple la première ligne de my_data) dans un fichier texte :
write(my_data[1], file = "my_text_file2.txt", ncolumns = 1, sep = " ")
Exportation en fichier CSV
Utilisez un jeu de données intégré, ici CO2, et exportez-le en CSV :
head(CO2)
write.csv(CO2, file = "my_csv.csv")
Pour ne pas inclure les numéros de ligne dans le fichier CSV :
write.csv(CO2, file = "my_csv.csv", row.names = FALSE)
Pour supprimer aussi les noms de colonnes, ajoutez col.names = FALSE (optionnel).
Exportation en fichier Excel
Installez la bibliothèque xlsx :
install.packages("xlsx")
library(xlsx)
write.xlsx(CO2, file = "my_excel.xlsx", row.names = FALSE)
Cette méthode est similaire à l’export CSV, mais nécessite une bibliothèque externe.
Exportation en fichier .RData
Créez des variables simples et sauvegardez-les dans un fichier .RData :
var1 <- "var1"
var2 <- "var2"
var3 <- "var3"
save(list = c("var1", "var2", "var3"), file = "variables.RData", safe = TRUE)
Le fichier variables.RData est créé et contient les objets R sauvegardés.
Résultats attendus
- Lecture du fichier The_Artist.txt avec
readLines()retourne un vecteur de 5 éléments (lignes). - La taille du fichier est de 1065 octets.
- Lecture mot par mot avec
scan()retourne un vecteur dont la longueur correspond au nombre total de mots. - Les fonctions de manipulation de chaînes retournent les résultats attendus : conversion majuscules/minuscules, remplacement d’espaces par des traits d’union, découpage en mots, tri alphabétique, concaténation, extraction de sous-chaînes.
- Les fichiers texte, CSV, Excel et RData sont créés correctement avec les données spécifiées.
Erreurs courantes
- Ne pas avoir le fichier The_Artist.txt dans le répertoire de travail, ce qui provoque une erreur de lecture.
- Oublier d’installer ou de charger la bibliothèque
stringravant d’utiliserstr_sub(). - Ne pas spécifier correctement les arguments dans
write()(par exemple,ncolumnsetsep), ce qui peut entraîner un fichier mal formaté. - Dans l’export CSV, oublier de mettre
row.names = FALSEentraîne l’ajout de numéros de ligne non désirés. - Pour l’export Excel, ne pas installer la bibliothèque
xlsxprovoque une erreur. - Confusion entre lecture ligne par ligne (
readLines()) et mot par mot (scan()). - Utiliser des indices incorrects dans
substr()oustr_sub()peut produire des sous-chaînes inattendues.
Commentaires
Aucun commentaire pour le moment. Posez la première question.