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.
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 :
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 :
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
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.
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.
2 Responses
Bonjour et merci beaucoup votre publication est très intéressante et ma aidé je souhaiterai avoir une version en pdf merci
Bonjour,
il n’existe pas de version pdf des articles. Ils sont seulement consultables sur le site.
Bonne continuation