knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  echo = TRUE
)
library(readxl)

Les formats de fichiers de données

{width=25%} peut lire différents formats de données. Les principaux formats rencontrés sont:
- Fichiers textes à valeurs séparées par un caractère spécial
- Fichiers Excel
- Fichier natif de R (.Rda)

Un utilisateur peut vouloir enregister principalement des:
- données transformées dans R
- résultats d'analyses sous forme de tables
- sorties textes plus complexes
- graphiques.

Les exemples...

... se trouvent dans un dossier compressé qui contient les fichiers suivants :

|Nom du fichier | Taille| |:------------------------------------|------:| |data_io/1.tabular_simple.tsv | 4486| |data_io/2.tabular_complex_header.tsv | 4608| |data_io/3.only_one_col | 487| |data_io/4.tabular_no_header.tsv | 2012| |data_io/5.data_in_excel.xlsx | 17858|

Tables dans un fichier texte {.smaller}

la plus basique: fichier texte avec un séparateur {.smaller}

exemple:

nom     groupe  Energie Eau     Proteines       Glucides        Lipides ....
Abricot crus    194     87.1    0.81    9.01    0.25    6.7     1.3     1.7
Abricot secs    1010    24.7    2.88    59.1    0.5     34.3    10.6    8.3
Ananas  exotique        304     81.3    0.94    15.1    0.25    14.9    2.8

lecture/ecriture avec les fonctions de bases de R {.smaller}

fruits <- read.table(file = "data_io/1.tabular_simple.tsv", header = T, sep = "\t")
write.table(x = fruits, file = "1.simpletabular.tsv", quote = F, sep = "\t", row.names = F)

Attention à ne pas écraser un fichier

Il existe plusieurs variantes selon les fichiers de données

avec plusieurs ligne d'en-tête{.smaller}

exemple:

# nom : nom du fruit
# groupe : fruit sec, exotique, mangé crus ou en compote
# autres colonnes : valeurs nutritionelles
nom     groupe  Energie Eau     Proteines       Glucides        Lipides ....
Abricot crus    194     87.1    0.81    9.01    0.25    6.7     1.3     1.7
Abricot secs    1010    24.7    2.88    59.1    0.5     34.3    10.6    8.3
Ananas  exotique        304     81.3    0.94    15.1    0.25    14.9    2.8
fruits <- read.table(file = "2.tabular_complex_header.tsv", header = T, sep = "\t", skip=3)

avec une seule colonne{.smaller}

exemple:

Abricot
Ananas
Banane
Canneberge
Cerise
Citron
Clementine
CompoteMultiFruits
fruit_names <- scan(file = "3.only_one_col", what=character())

sans en-tête{.smaller}

Abricot crus    194     87.1    0.81    9.01    0.25
Abricot secs    1010    24.7    2.88    59.1    0.5
Ananas  exotique        304     81.3    0.94    15.1    0.25
fruits <- read.table(
     file = "tabular_noheader.tsv", 
     col.names = c("nom", "groupe", "Energie", "Eau", "Proteines", "Glucides", "Lipides"), 
     sep = "\t"
)

ou

fruits <- read.table(file = "4.tabular_no_header.tsv", , header = T, sep = "\t")
names(fruits) <- c("nom", "groupe", "Energie", "Eau", "Proteines", "Glucides", "Lipides")

Fichier binaire de R{.smaller}

Les fichiers utilisés pour pouvoir sauvegarder et reprendre une session R plus tard.

load("data_io/fruits.RData")

cela crée dans la session un ou des objets tels qu'ils ont été sauvegardés.

pour sauvegarder l'objet fruits:

save(fruits, file = "mySave.Rdata")

Pour sauvegarder tout une session de travail:

save.image(file = "mySession.RData")

ou

q("yes")

Lecture de fichier excel{.smaller}

Les données peuvent aussi être transmises sous forme d'un classeur excel.
Il faut alors extraire la table d'intérêt dans la feuille qui le contient.

On utilise pour cela le package readxl qui fournis (entre autres) les fonctions

Par exemple le classeur data_in_excel contient 3 feuilles:

library(readxl)
read_xlsx(path = "data_io/5.data_in_excel.xlsx", sheet = "fruits", skip = 3)

Ecriture de fichiers Excel

Pour écrire un fichier sous format "Excel", on utilise pour cela le package writexl.

Par exemple, on enregistre le tableau fruits_summary dans un fichier fruits_summary.xlsx avec la suite de commandes suivantes :

library(dplyr)
fruits_summary <- fruits %>%
  group_by(groupe) %>%
  summarize(
    MoyenneSucres = mean(Sucres),
    MoyenneLipides = mean(Lipides))

library(writexl)
write_xlsx(fruits_summary, path = "fruits_summary.xlsx")

Sorties graphiques {.smaller}

Quand nous voulons sauvegarder un graphe en ligne de commande, nous avons 2 moyens principaux:

Si le graphe a été généré avec les fonctions de base de R:

R fournit des fonctions pour enregistrer sous différents formats de fichier image (BMP, JPEG, PNG & TIFF ). Elles fonctionnent toutes dans le même scénario:

png(filename="monBeauGraph.png", width = 960, height = 960 ) # remplacer l'affichage
# Code pour generer le graphique
dev.off() # finaliser le fichier

Attention: suivant les options "width" et "height", les textes et les points ne prendront pas la même place dans le fichier qu'à l'écran.

Si le graphe a été généré avec les fonctions de ggplot:

ggplot fournit la fonction ggsave. Par exemple, pour sauvegarder un plot enregistré dans la variable "g":

ggsave( filename="monBeauGraph.png, plot=g, device = png)


vguillemot/debuter documentation built on Oct. 8, 2024, 10:47 p.m.