Manipulation de fichiers texte et données dans R

Ce TP propose de manipuler des fichiers texte et des données dans R. Vous apprendrez à lire des fichiers texte, à effectuer des opérations sur des chaînes de caractères, puis à écrire et enregistrer des données dans différents formats de fichiers. Pour réaliser ce TP, vous aurez besoin du fichier texte "The_Artist.txt" ainsi que de R installé sur votre ordinateur.

D'après le document Manipulation de fichiers texte et données dans R

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

Manipulation de fichiers texte et données dans R

Document source

Manipulation de fichiers texte et données dans R

Programmation en R et manipulation de données · PDF · 4 pages

Afficher l'aperçu du document

Consulter le document original →

Ce TP propose de manipuler des fichiers texte et des données dans R. Vous apprendrez à lire des fichiers texte, à effectuer des opérations sur des chaînes de caractères, puis à écrire et enregistrer des données dans différents formats de fichiers. Pour réaliser ce TP, vous aurez besoin du fichier texte "The_Artist.txt" ainsi que de R installé sur votre ordinateur.

Objectifs

  • Savoir 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, remplacement, découpage, tri).
  • Écrire et sauvegarder des données dans différents formats de fichiers : .txt, .csv, .xlsx, .RData.
  • Utiliser des bibliothèques externes pour manipuler des fichiers Excel.

Prérequis et installation

  • Connaissances de base en R.
  • Fichier texte "The_Artist.txt" disponible dans le répertoire de travail.
  • R installé avec les packages de base.
  • Pour l'export Excel, installation du package xlsx via install.packages("xlsx").
  • Chargement de la bibliothèque stringr pour certaines opérations sur les chaînes.

Lecture de fichiers texte

Pour lire un fichier texte ligne par ligne, utilisez la fonction readLines() en fournissant le chemin du fichier :

my_data <- readLines("The_Artist.txt")
my_data

Vous obtenez un vecteur de caractères où chaque élément correspond à une ligne du fichier. Vérifiez la longueur du vecteur :

length(my_data)

Pour connaître la taille du fichier en octets, utilisez :

file.size("The_Artist.txt")

Une autre méthode est la fonction scan(), qui lit le fichier mot par mot. Exemple :

my_data1 <- scan("The_Artist.txt", "")
my_data1
length(my_data1)

Cette méthode retourne un vecteur de mots extraits du fichier.

Opérations sur chaînes de caractères

Plusieurs fonctions permettent de manipuler les chaînes dans R :

nchar()

Retourne le nombre de caractères d'une chaîne. Exemple :

nchar(my_data[1])

toupper() et tolower()

Convertissent une chaîne en majuscules ou minuscules :

toupper(my_data[3])
tolower(my_data[3])

chartr()

Remplace des caractères dans une chaîne. Par exemple, pour remplacer les espaces par des traits d'union dans la première ligne :

chartr(" ", "-", my_data[1])

strsplit()

Divise une chaîne en fonction d'un séparateur, ici un espace, pour obtenir les mots :

character_list <- strsplit(my_data[1], " ")
word_list <- unlist(character_list)
word_list

La fonction unlist() convertit la liste en vecteur de caractères pour un accès plus simple.

sort()

Trie un vecteur de chaînes par ordre alphabétique :

sorted_list <- sort(word_list)
sorted_list

paste()

Concatène un vecteur de chaînes en une seule chaîne, avec un séparateur :

paste(sorted_list, collapse = " ")

substr()

Extrait une sous-chaîne à partir d'une chaîne donnée. Les arguments sont la chaîne, la position de départ et la position d'arrêt :

sub_string <- substr(my_data[1], start = 4, stop = 50)
sub_string

trimws()

Supprime les espaces blancs en début et fin de chaîne :

trimws(sub_string)

str_sub()

Permet de lire une chaîne à partir de la fin, avec des indices négatifs. Cette fonction fait partie du package stringr :

library(stringr)
str_sub(my_data[1], -8, -1)

Par exemple, cette commande extrait les 8 derniers caractères de la première ligne.

Écriture et enregistrement dans les fichiers

Après avoir manipulé des données, vous pouvez les enregistrer dans différents formats.

Exportation en fichier texte

Pour écrire une matrice dans un fichier texte :

m <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 2, ncol = 3)
write(m, file = "my_text_file.txt", ncolumns = 3, sep = " ")

Pour écrire une chaîne de caractères dans un fichier :

write(my_data[1], file = "my_text_file2.txt", ncolumns = 1, sep = " ")

Exportation en fichier CSV

Utilisez un data frame, par exemple le jeu de données intégré CO2 :

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.

Exportation en fichier Excel

Installez et chargez le package xlsx :

install.packages("xlsx")
library(xlsx)

Puis exportez les données :

write.xlsx(CO2, file = "my_excel.xlsx", row.names = FALSE)

Exportation en fichier .RData

Pour sauvegarder des objets R dans un fichier .RData :

var1 <- "var1"
var2 <- "var2"
var3 <- "var3"
save(list = c("var1", "var2", "var3"), file = "variables.RData", safe = T)

Ce fichier pourra être chargé ultérieurement pour restaurer les variables.

Résultats attendus

  • Lecture du fichier "The_Artist.txt" en 5 lignes (length(my_data) = 5).
  • Taille du fichier d'environ 1065 octets.
  • Extraction correcte des mots avec scan() et strsplit().
  • Transformation correcte des chaînes en majuscules ou minuscules.
  • Remplacement des espaces par des traits d'union dans la chaîne.
  • Tri alphabétique des mots extrait de la première ligne.
  • Extraction d’une sous-chaîne entre les positions 4 et 50.
  • Suppression des espaces en début et fin de chaîne avec trimws().
  • Extraction des derniers caractères avec str_sub().
  • Création de fichiers texte, CSV, Excel et .RData contenant les données spécifiées.

Erreurs courantes

  • Ne pas fournir le chemin correct du fichier "The_Artist.txt" provoque une erreur de lecture.
  • Confondre readLines() (ligne par ligne) et scan() (mot par mot).
  • Oublier d’utiliser unlist() après strsplit() rend l’accès aux mots plus compliqué.
  • Ne pas installer ou charger le package xlsx avant d’exporter en Excel.
  • Omettre l’argument row.names = FALSE dans write.csv() pour éviter d’exporter les numéros de ligne.
  • Utiliser des indices incorrects dans substr() ou str_sub() peut entraîner des erreurs ou des résultats inattendus.
  • Ne pas vérifier la longueur des vecteurs avant d’accéder à leurs éléments peut causer des erreurs.

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