Analyse Statistique avec R- Importation de données
T.Mellah
Nov 1st, 2021
Contents
1 Importation dans R
1.1 A partir de fichiers locaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 A partir des données disponibles sur le web . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Web scraping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1
2
2
1 Importation dans R
Les données pourraient être importées dans R à partir de différentes sources: des fichiers locaux, des base de
données disponibles sur le web ou toutes autres sources notamment les réseaux sociaux ou aussi à partir des
documents pdf.
Advertisement
1.1 A partir de fichiers locaux
Afin de pouvoir importer correctement les données dans R il faut prendre certaines précautions lors de la
préparation de la base de données, notamment:
• i-attention aux espaces, accents et caractères spéciaux;
• ii-enregistrer les feuilles de données sous un format tabulé.
Différentes commandes permettent d’importer des données dans R:
• read.table(): A privilégier pour des jeux de données organisés sous la forme de tableaux, comme cela
est souvent le cas en statistique.
• read.ftable(): Permet de lire des tableaux de contingence.
• scan(): beaucoup plus flexible et puissante. Elle devra être utilisée dans tous les autres cas.
D’une façon opérationnelle, une des options consiste à
• enregistrer la base sous un format tabulé (csv ou txt)
• ecrire la ligne de commande suivante dans la console de R
Data=read.table(file=file.choose(),header=T,sep="", dec=".",row.names=1)
On note que cette ligne de commande admet différents arguments:
• header=T : Valeur logique indiquant si le fichier contient le nom des variables sur la première ligne.
Advertisement
• sep= “”: les valeurs sur chaque ligne sont séparées par un ou plusieurs espaces.
• dec= “.”: le point est le séparateur décimal pour les nombres.
• row.names= 1: la première colonne du fichier contient le nom des individus. Si ce n’est pas le cas, il
suffit d’omettre ce paramètre.
1
Dans la ligne de commande présentée ci-dessus on a utilisé la fonction file.choose() qui ouvre une fenêtre
de dialogue permettant de sélectionner un fichier et de renvoyer la chaîne de caractères requise. Une autre
option consiste à spécifier soi même le chemin d’accès du fichier data.
Remarque:
• On peut importer directement depuis excel en suivant la procédure suivante: i- créer un tableau dans
excel ii- copier la plage de données qui sera confinée dans le press-papier iii- écrire dans R le script
suivant: library(readr) data <- read.table(file("clipboard"),sep="",header=TRUE,dec=",")
• L’inetrface de RStudio permet d’importer directement des fichiers de données dans R.
• On peut aussi utiliser les packages Rcmdr ou encore GrapheR (après avoir installer le packadge en
question taper dans la console run.GrapheR())
• certains packages contiennent des bases de données.
Advertisement
i-Ouvrir Rcmdr ii-Lister les données dans les
packages: Data/Data in packages/List data sets in packages : (ou encore taper dans la console data())
iii-Lire les données dans les packages: data(package = .packages(all.available = TRUE)) ou encore
Data/Data in packages/Read data set from an attached package
1.2 A partir des données disponibles sur le web
Exemple de constitution de base de données à partir du site de la Banque Mondiale relatif aux indicateurs de
développement: https://data.worldbank.org/data-catalog/world-development-indicators
Procédure:
• library(WDI)
• ind-data=rbind.data.frame(WDIsearch(string = "ICT", field = "name"),WDIsearch(string ="Commu-
nication", field = "name")): collecter des données sur les indicateurs disponibles en infrastructure
communication et en communication
• data=WDI(indicator = ind-data$indicator, start = 2000, end = 2018): constituer une base de données
sur une période 2000 à 2018
• View(data)
1.3 Web scraping
Advertisement
Par exemple à prtire du site wikipédia: https://en.wikipedia.org/wiki/Tunisia
1- Première façon de faire: utiliser le package htmltab
• install.packages("htmltab")
• library(htmltab)
• htmltab("https://en.wikipedia.org/wiki/Tunisia",3)
2-Deuxième façon de faire: utiliser les XML et httr packages
• library(httr)
• library(XML)
• url= "https://en.wikipedia.org/wiki/Tunisia"
• data=GET(url)
• data
• doc= readHTMLTable(doc=content(data, "text"))
2
• doc[4]
3