Comment exporter des données ou des sorties R ?

exportation avec R

Savoir importer des données sous R, c’est évidemment indispensable, mais savoir exporter des données, ou des sorties R, c’est aussi très utile. Plusieurs lectrices et lecteurs du blog m’ont demandé comment faire, alors je vais vous montrer quelques possibilités.

Table des matières

Exporter des données en format csv

Lorsque je réalise des prestations de biostatistique ou de data analyse, il m’arrive fréquemment de faire un peu de data management, ou bien de créer un tableau de données à partir des données qui m’ont été fournies. Et j’ai ensuite besoin d’exporter en csv ce nouveau tableau de données. Je le réimporte au moment des analyses ; l’export m’évite simplement de relancer toutes les étapes de data management à chaque fois que le script tourne. Et puis ça me permet de fournir le fichier à mes clients.

Pour cela, je créais, dans un premier temps,  un dossier “data_output” dans mon projet R.  C’est dans ce dossier que je stock ensuite les fichiers csv.

A titre d’exemple, à partir des données iris (incluses dans le package dataset chargé par défaut), je vais créer un dataframe setosa en filtrant uniquement les lignes de cette espèce, puis je vais l’exporter en utilisant la fonction write.csv() :

dir.create("data_output") # pour créer le dossier data_output

# création du dataframe setosa_df
library(tidyverse)
setosa_df <- iris %>% 
	filter(Species=="setosa")

# Exportation
write.csv2(setosa_df, here::here("data_output","data_setosa.csv"),row.names = FALSE ) 

Le terme `here::here` permet d’utiliser la fonction here() du package here qui construit automatiquement le chemin d’accès jusqu’au dossier data_output.
Le data frame setosa_df est exporté sous le nom data_setosa.csv. L’argument row.names=FALSE permet d’éviter qu’une première colonne avec l’indice des lignes ne soit ajouté dans le fichier csv.

Voici une capture écran du fichier csv obtenu

exportation des données en csv

Exporter la sortie d'une fonction en csv

Par exemple, lorsqu’on réalise une table1 avec le package finalfit , l’objet créé par cette fonction est de type data.frame. Pour l’exporter, il suffit d’utiliser la fonction write.csv2(), comme précédemment.

Dans ce cas, je crée d’abord un dossier resultats pour stocker ce type de sortie.

Remarque : les données colon_s employées ci-dessous sont incluses dans le package finalfit.

# creation d'un dossier résultats qui contiendra les exportations
dir.create("resultats")
library(finalfit)
 
explanatory = c("age.factor", "sex.factor", "obstruct.factor")
dependent = 'mort_5yr'
colon_tab1 <- colon_s %>%
  summary_factorlist(dependent, explanatory, 
  p=TRUE, add_dependent_label=TRUE) 


colon_tab1

# vérification du type data frame de l'objet crée par la fonction summary_factorlist()
str(colon_tab1)

# exportation
write.csv2(colon_tab1, here::here("resultats","table1.csv"),row.names = FALSE ) 

Voici un capture de la table1 exportée : 

table1 exportée

Exporter la sortie d'une fonction en format Word ou txt

Les objets créés par des fonctions R ne sont pas toujours des data frame. Dans ce cas, il est plus facile de les exporter en format word, ou texte. Cela se fait facilement avec la fonction capture.output()

Par exemple, si je fais une ANOVA, et que je veux exporter le résultat dans un document word, je peux employer la fonction capture.output() du package utils (chargé par défaut).

# réalisation de l'anova
mod1 <- lm(Sepal.Length~Species, data=iris)

library(car) # pour l'emploi de la fonction Anova()

# verification de la structure de la sortie de la fonction
str(Anova(mod1))
Classes ‘anova’ and 'data.frame':	2 obs. of  4 variables:
 $ Sum Sq : num  63.2 39
 $ Df     : num  2 147
 $ F value: num  119 NA
 $ Pr(>F) : num  1.67e-31 NA
 - attr(*, "heading")= chr [1:2] "Anova Table (Type II tests)\n" "Response: Sepal.Length"
 

Comme nous pouvons le voir l’objet créé est de type `anova` et `data.frame`

capture.output(Anova(mod1),file="resultats/res_anova.doc") 

Voici une capture écran du fichier .doc obtenu

Exportation du résultat de la table anova

Les formats d’exportation possibles sont .txt, .doc,  .csv ; docx et pdf ne fonctionnent pas pour moi.  

Je n’arrive pas à employer ici la fonction here(), mais la syntaxe file="resultats/res_anova.docx" permet d’envoyer le résultat dans le dossier résultat.

Voilà ! J’espère que ce court billet vous permettra de réussir vos exportations !

Si vous employez d’autres fonctions pour réaliser vos exportation, n’hésitez pas à mes les indiquer en commentaire.

En attendant, si cet article vous a plu ou vous a été utile, n’oubliez pas de le partager ! Vous pouvez également soutenir le blog par un don libre sur la page Tipeee.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bonjour !

vous venez souvent ?

Identifiez-vous pour avoir accès à toutes les fontionnalités !

Aide mémoire off'R ;)

Enregistrez vous pour recevoir gratuitement mes fiches “aide mémoire” (ou cheat sheets) qui vous permettront de réaliser facilement les principales analyses biostatistiques avec le logiciel R et pour être informés des mises à jour du site.