Beruflich Dokumente
Kultur Dokumente
Résumé: Ce document est un guide montrant comment importer et accéder à des données issues d'un tableur en
utilisant le logiciel R. Le format de fichier intermédiaire choisi est le format CSV.
1.2 Comment exporter une feuille d'un tableur au format texte ?......................................................................2
3 Un exemple.........................................................................................................................................................5
La façon la plus aisée et la plus fiable de fonctionner est de créer, à partir du tableur, un fichier au
format texte. L'avantage d'un tel fichier est que son format très simple lui permet d'être lu par un grand nombre
de logiciels. Il peut être aussi modifié très facilement en l'éditant avec un simple éditeur de texte (notepad,
wordpad, gedit, vi etc...). L'inconvénient du fichier texte est qu'il doit avoir une structure très simple mais très
précise pour qu'il soit correct, et qu'il ne peut contenir les données que d'une seule feuille de votre classeur.
Globalement, un fichier texte comporte des lignes qui elles-mêmes comportent des données organisées en
colonnes grâce au choix d'un caractère qui sert de séparateur de colonnes. Ce fichier texte devra avoir le format
suivant :
• la première ligne comporte les noms des variables (colonnes) du classeur séparées par le séparateur de
colonne.
1/6
© Sylvain Hanneton 2010 - tous droits réservés
• les noms des variables peuvent être écrits entre guillemets ou non
• les lignes suivantes comportent les données organisées en colonnes séparées par le caractère de
séparation des colonnes.
Age;Departement;Genre
18;75;1
23;77;1
28;78;2
…
Ce premier exemple comporte trois variables et donc trois colonnes. Le séparateur de colonne est le caractère
« point-virgule ». Les noms des variables ne sont pas écrits entre guillemets.
Second exemple :
«Age»,«Departement»,«Poids»
18,75,78.0
23,77,70.5
28,78,81.3
…
Dans cet exemple le séparateur de colonnes est le caractère « virgule », le séparateur des décimales est le point
(notation anglo-saxonne) et les noms des variables sont indiqués entre guillemets.
Dernier exemple :
«Age».«Departement».«Poids»
18.75.78,0
23.77.70,5
28.78.81,3
…
Ici le séparateur des colonnes est le point et le séparateur des décimales est la virgule comme dans le système
numérique français.
Tous les tableurs (Excel, Gnumeric, OpenOffice) ont une entrée de menu permettant d'exporter les
données d'un classeur en différent formats dont le format texte. On trouve cette fonction dans le menu « Fichier-
>Enregistrer sous » ou dans « Fichier->Exporter ». Dans les exemples suivants, nous utiliserons le tableur de
la suite OpenOffice mais la procédure est la même à peu de chose près avec les autres outils. Nous allons choisir
le format dit format texte « CSV1 » pour importer les données du tableur vers R.
2. de choisir le format CSV en bas à droite dans la boîte de dialogue qui s'affiche (étape 1 de l'Illustration 1
1.NB : L'acronyme CSV veut dire « comma separated values » ou valeurs séparées par des virgules... Si vous souhaitez en savoir plus,
consultez la page correspondante de Wikipédia par exemple : http://fr.wikipedia.org/wiki/Comma-separated_values .
2/6
© Sylvain Hanneton 2010 - tous droits réservés
3. de cocher la case du filtre d'exportation en bas à gauche de la boîte de dialogue (étape 2 de l'illustration
1).
Puisque la case à cocher d'édition des paramètres du filtre d'exportation a été cochée, une autre boîte de dialogue
s'affiche alors (voir Illustration 2). On a accès alors au réglages suivants :
• encodage des caractères : l'option « UTF-8 » par défaut convient très bien.
• Séparateur de champs : il s'agit ici du séparateur des colonnes. Vous pouvez choisir ce que vous voulez
sauf la virgule. Je vous conseille le point-virgule qui correspond à un réglage par défaut du logiciel R.
• Séparateur de texte : il s'agit ici du caractère qui permet d'encadrer un texte, par exemple un nom de
variable ou un code comme « F » et « M » pour une colonne donnant le caractère masculin ou féminin.
La valeur par défaut convient.
La case à cocher « Enregistrer le contenu de la cellule comme affiché » indique que le fichier texte contiendra
exactement les mêmes caractères que ceux affichés par le tableur. Dans certains cas, il vaut mieux décocher la
case mais en ce qui nous concerne, laissons la case cochée par défaut. Cocher la case « largeur de colonne
fixe » n'est utile que pour obtenir par exemple un fichier texte « présentable » directement avec des colonnes qui
ressemblent à des vrais colonnes. Nous n'avons pas besoin de cocher cette case.
3/6
© Sylvain Hanneton 2010 - tous droits réservés
Le fichier CSV va contenir par défaut des valeurs décimales utilisant le système « anglo-saxon » pour séparer la
partie entière de la partie décimale des nombres.
1. Surtout n'utilisez pas un séparateur de colonnes identique au séparateur de décimales sinon l'importation
de vos données dans un autre logiciel va poser problème.
2. Comme on le verra R peut indifféremment travailler avec le point ou la virgule comme séparateur de
décimales. Mais il est probable que par défaut il utilise sur votre système l'un ou l'autre de ces
séparateurs.
3. D'autre part, si vous souhaitez importer ce fichier CSV dans un autre logiciel vous pouvez avoir des
soucis si celui-ci utilise la virgule comme séparateur de décimale. Vos données avec un point peuvent
être alors considérées comme des données « textes » (chaîne de caractères) ou autre. La solution est
souvent d'ouvrir votre fichier CSV avec un éditeur de texte (gedit, notepad, wordpad etc...) et d'utiliser la
fonction « rechercher-remplacer » pour remplacer automatiquement tous les points par des virgules.
Dans votre classeur, vous avez toujours intérêt à choisir des noms de variables les plus courts et les plus simples
possibles. Évitez les espaces et les accents qui peuvent poser problème lors de la création et l'importation du
fichier CSV.
Il existe dans R plusieurs fonctions permettant de lire les données. Il suffit de consulter les aides du logiciel pour
en avoir la liste. Ainsi, si vous tapez help(read.table) dans la fenêtre de commande de R vous obtenez la
liste de toutes les fonctions dérivées de la fonction read.table(), fonctions qui servent à lire des fichiers textes.
Nous choisirons d'utiliser les commandes « read.csv() » et « read.csv2() ».
• « read.csv() » : permet de lire directement les fichiers CSV avec comme séparateur de colonnes
un point-virgule et comme séparateur de décimales un point.
• « read.csv2() » : permet de lire directement les fichiers CSV avec comme séparateur de colonnes
un point-virgule et comme séparateur de décimales une virgule (système français).
Le premier paramètre est le nom du fichier CSV qui contient vos données.
• header : cette valeur indique si les noms des variables de colonnes sont présentes dans le fichier texte. Si
oui, indiquer alors « header=TRUE », sinon « header=FALSE ». La première solution est la valeur par
défaut qui convient la plupart du temps.
• sep : indique le caractère qui est le séparateur de colonnes, il est par défaut fixé au point virgule dans la
fonction read.csv2().
• dec : indique le caractère qui est le séparateur de décimales (dec=« , », ou dec= « . »).
4/6
© Sylvain Hanneton 2010 - tous droits réservés
La fonction read.csv() ou read.csv2() va récupérer les donnes du fichier et les placer en mémoire dans
un structure de données appelée « data frame ». Si la commande utilisée est
D<-read.csv2(«monfichier.csv»)
elle correspond à appeler D la structure de données qui contient les données du fichier « monfichier.csv ». On
pourra ensuite accéder séparément aux différentes colonnes du fichiers par le signe « $ » suivi du nom de la
variable : D$Age, D$Departement et D$Genre par exemple.
3 Un exemple
3.1 De OpenOffice à R
Nous allons prendre l'exemple d'un fichier de recensement des chutes dans un établissement de personnes âgées.
Ce fichier initial est un fichier de classeur OpenOffice (voir Illustration 3).
Après exportation, le fichier CSV apparaît comme ci-dessous dans un éditeur de texte :
"CODE";"sexe";"D.N.";"Age";"mois";"semaine";"jours";"Cons.";"heure";"horaire";"lieu"
"SH_PNECVR";"h";19/08/21;88;12;3;3;3;17;2;3
"SH_UHYQRA";"f";;;12;3;2;1;17;2;1
"SH_YRICVR";"h";;;12;3;7;4;17;2;1
"SH_IREZNE";"f";13/01/13;96;12;2;3;4;17;2;
"SH_FNCYRB";"h";;;12;2;5;3;23;4;1
"SH_INHTÉE";"h";;;12;3;1;4;6;4;1
On peut effectivement constater que le séparateur de colonne est le point-virgule et que les chaînes de
caractères sont encadrées de guillemets. On voit également que la première ligne du fichier comporte les noms
des colonnes (variables). Il suffit d'entrer dans la fenêtre de commande de R : D<-
read.csv2(« fichierchutes.csv ») où « fichierchutes.csv » est le nom du fichier contenant
les données et DATA le nom du « data frame » qui contiendra les données. Attention il faut s'assurer que le
fichier contenant les données est bien dans le répertoire de travail de R pour que cela marche. Si ce n'est pas le
cas vous aurez un message du type :
Si cela marche, on peut alors vérifier que le tableau est bien importé dans R en tapant le nom du data frame suivi
5/6
© Sylvain Hanneton 2010 - tous droits réservés
Si l'on veut accéder aux variables du tableau alors il suffit de taper le nom du data frame suivi du signe dollar
puis du nom de la variable. Ainsi pour obtenir l'âge moyen il suffit d'entrer la commande mean(DATA$Age)
suivi de la touche entrée. En fait ici il y a des valeurs « NA » qui correspondent à des cases non renseignées donc
la bonne commande est la suivante (voir l'aide de la fonction mean) :
> mean(DATA$Age,na.rm=TRUE)
[1] 88.97143
>
La même procédure doit être suivie pour les tableaux croisés dynamiques. Ils doivent être placés
individuellement sur une feuille et simplifiés pour que les données soient exportables. En particulier il est
nécessaire d'enlever les options permettant le calcul des totaux de lignes et colonnes (voir Illustration 4).
6/6