Vous êtes sur la page 1sur 16

Introduction au logiciel R

Youssef Lamrani Alaoui


2020

Contents
Introduction 1

Quelques commandes introductives 1

Arithmétiques 2

Vecteurs dans R 3

Data frame 4

Statistiques descriptives 6

Représsentations graphiques 7

Des conditions sur une base de données 10

Extraire d’une sous population 11

Discrétisation d’une variable 12

Combiner des tableaux 12

Simulation des lois de probabilité 12

Programmation avec R 15

Introduction
L’utilisation de R présente plusieurs avantages :
• R est un logiciel multiplateforme, qui fonctionne sur les systèmes Linux, Mac OS et Windows
• C’est un logiciel gratuit
• C’est un logiciel dont le développement est très actif et dont la communauté d’utilisateurs ne cesse de
s’élargir
• C’est un logiciel avec d’excellentes capacités graphiques
• R est un langage de programmation orientée objet
• R aussi, peut présenter certains désavantages

Quelques commandes introductives


Avoir une idée sur la version de R
sessionInfo()

Autre commande

1
R.version

Identifier l’emplacement de votre dossier de travail:


getwd()

Changer l’emplacement de votre répertoire de trvail


setwd("D://Enseignement//EMI//cours_R//data2")

Une autre façon de changer le repertoire de travail est la suivante:


Si vous êtes sur RStudio, allez dans:
• session
• setworking directory
• choose directory
si vous êtes sur R allez dans :
• fichier
• changer l’environement de travail
Ctr+L permet de vider la fenêtre de session
Lister les fichier que vous avez dans votre répertoire de travail
list.files()

Pour avoir l’aide sur une fonction R vous mettez ? devant le nom de la fonction:
? mean()

Pour chercher une expression utiliser la fonction RSiteSearch( ):


RSiteSearch('svm' )

Obtenir tous les commandes qui contiennent un mot particulier:


apropos("test")

Avoir des infomations sur les arguments d’une fonction


args(cor)

args(read.csv)

Avoir des démos sur une commande avec la commande example()


example(mean)

Installer un pacakage:
Un package est une bibliothèque externe qui contient des collections de fonctions utilisables sous R. ils sont
Souvent centrés sur un sujet particulier (ex. rpart pour les arbres de décision, etc.). Nous pouvons installer
des packages, les désinstaller, les charger, les décharger et les mettre à jour.
Pour installer un package:
install.packages("nom_package")

Pour charger un package:


library(nom_package)

OU

2
require(nom_package)

Pour charger plusieurs packages:


library(package1,package2)

Pour décharger un package lors de conflits entre package:


detach("nom de package",unload=TRUE)

Arithmétiques
1+2

## [1] 3
exp(25)

## [1] 72004899337
4^5

## [1] 1024
abs(-25)

## [1] 25
X=2.354
Y=X+4
Y/3

## [1] 2.118
32*4

## [1] 128
Pour fixer le nombre de chiffre après la virgule
options(digits=2 )
print(Y)

## [1] 6.4

Vecteurs dans R
Créer un vecteur avec des éléments de 1 à 12
V1=1:12

OU
V2=seq(from=1,to=12,by=1)

Créer un vecteur avec des éléments de mon choix:


V3=c(1,2,3,4,5,8)

Créer un vecteur de chaines de caractères :

3
V4=c("bleu","vert","marron")

Créer un vecteur logique:


V5=c(T,T,F,F,T)

Une donnée manquante est représentée par NA(Not Available)dans R:


V6=c(1.2,36,NA,-26.5)

Pour saisir une série de données à l’aide de clavier, utiliser la fonction scan(); R vous donne la main et vous
pouvez taper les valeurs de la série. Le premier retour-chariot après une chaîne vide met fin à la saisie:
V7=scan()

lister le contenu de la mémoire:


ls()

## [1] "V1" "V2" "V3" "V4" "V5" "V6" "X" "Y"


Supprimer un élément de la mémoire:
A=4
rm (A) # supprimer l’élément A

Supprimer tous les objets en mémoire:


rm(list=ls())

Data frame
Lire un jeu de données text:
setwd("D:\\Enseignement\\EMI\\cours_R\\data2")
data1=read.table("Insee2003.txt",header =TRUE)

Afficher le dataset
View(data1)

Lire un jeu de données csv:


setwd("D:\\Enseignement\\EMI\\cours_R\\data2")
data2=read.csv("world_data.csv",header = T)

Afficher le jeu de données


View(data2)

Afficher les noms des variables d’un jeu de données


names(data2)

## [1] "country" "lifeexp" "unemployment" "happiness"


Afficher la dimension du tableau
dim(data2)

## [1] 12 4
Afficher le nombre de lignes du jeu de données

4
nrow(data2)

## [1] 12
Afficher le nombre des colonnes du tableau
ncol(data2)

## [1] 4
Afficher le type d’une variable
class(data2)

## [1] "data.frame"
Afficher la structure des variables du jeu de données
str(data2)

Afficher les valeurs d’une variable:


data2$country

Afficher l’entête du jeu de données:


head(data2)

## country lifeexp unemployment happiness


## 1 Albania 78 6.1 Low
## 2 Bulgaria 75 3.2 Low
## 3 Iran 76 2.1 Low
## 4 Ukraine 72 1.5 Low
## 5 South Africa 62 7.5 Low
## 6 Ukraine 72 1.5 Low
Afficher la queue de la base de données
tail(data2)

## country lifeexp unemployment happiness


## 7 Austria 81 1.43 High
## 8 Croatia 77 5.53 High
## 9 Denmark 81 1.36 High
## 10 Serbia 76 4.96 High
## 11 Indonesia 71 1.26 High
## 12 Thailand 78 0.06 High
Afficher les modalités d’une variable qualitative
levels(data2$happiness)

## [1] "High" "Low"


Créer votre propre tableau de données:
x=c(1,2,3,4,5) # créer un vecteur de 5 éléments
y=c("blue", "green", "brown", "black", "yellow") # créer un vecteur de 5 éléments
data=data.frame(x,y) # construire un tableau du deux vecteurs
head(data)

## x y
## 1 1 blue

5
## 2 2 green
## 3 3 brown
## 4 4 black
## 5 5 yellow
Changer les nomes des colonnes du tableau
names(data)=c("Var1", "Var2" )

Afficher les nom du noveau tableau:


names(data)

## [1] "Var1" "Var2"


Modéfier des éléments du tableau:
d.modif= edit(data)

Enregistrer le tableau créé avec un nouvea nom “fichier.txt”


write.table(data,"fichier.txt",sep="",dec=".", row.names=F, col.names=T,
na= "NA")

Voir si le tableau a été bien enregistré:


list.files()

## [1] "Commande_utiles.R" "CoursR.pdf" "data1"


## [4] "data2" "fichier.txt" "Mini_projet"
## [7] "Prze R.pptx" "R_indroduction.docx" "R_indroduction.html"
## [10] "R_indroduction.pdf" "R_indroduction.Rmd" "spss_instalation"

Statistiques descriptives
str(data2)

## 'data.frame': 12 obs. of 4 variables:


## $ country : Factor w/ 11 levels "Albania","Austria",..: 1 3 7 11 9 11 2 4 5 8 ...
## $ lifeexp : num 77.6 75 75.8 71.9 61.8 71.9 81.4 77.3 80.7 75.7 ...
## $ unemployment: num 6.09 3.24 2.11 1.53 7.52 1.53 1.43 5.53 1.36 4.96 ...
## $ happiness : Factor w/ 2 levels "High","Low": 2 2 2 2 2 2 1 1 1 1 ...
Moyenne de la variable espérance de vie
mean(data2$lifeexp)

## [1] 75
variance de la variable espérance de vie
Ecart type de la variable espérance de vie
var(data2$lifeexp)

## [1] 27
sd(data2$lifeexp)

## [1] 5.2
min de la variable espérance de vie

6
min(data2$lifeexp)

## [1] 62
maximum de la variable espérance de vie
max(data2$lifeexp)

## [1] 81
Afficher le minimum et le maximum de la variable espérance de vie
range(data2$lifeexp)

## [1] 62 81
Mediane
median(data2$lifeexp)

## [1] 76
Afficher le résumé statistique de la variable espérance de vie
summary(data2$lifeexp)

## Min. 1st Qu. Median Mean 3rd Qu. Max.


## 62 72 76 75 78 81
Afficher les effectifs d’une variable qualitative:
table(data2$happiness)

##
## High Low
## 6 6
Covariance entre lifeexp et unemploymen
cov(data2$lifeexp,data2$unemploymen)

## [1] -5.1
Coefficient de correlation entre lifeexp et unemploymen
cor(data2$lifeexp,data2$unemploymen)

## [1] -0.41
# la fonction pairs() permet de visualiser la matrice de correlation

Représsentations graphiques
Histogramme des effectifs
hist(data2$lifeexp,col="green",xlab="lifeexp",ylab="effectifs",main="histogramme")

7
histogramme
4
effectifs

2
0

60 65 70 75 80 85

lifeexp
Histogramme des fréquences
hist(data2$lifeexp,col="orange",xlab="lifeexp",ylab="effectifs",main="histogramme",probability =T)

histogramme
0.08
effectifs

0.04
0.00

60 65 70 75 80 85

lifeexp

Boîte à moustaches
boxplot(data2$lifeexp,col="red",xlab="happiness",ylab="effectifs",main="histogramme")

8
histogramme
effectifs

75
65

happiness

Diagramme en bâtons
Y=table(data2$happiness)
barplot(Y,col=c("red","yellow"),xlab="",ylab="effectifs",main="lifeexp")

lifeexp
6
effectifs

4
2
0

High Low

diagramme en secteurs
Y=table(data2$happiness)
pie(Y,col=c("red","yellow"),main="Happiness")

9
Happiness

High

Low

Représenter une variable en fonction d’une autre


plot(x=data2$lifeexp,y=data2$unemployment,col="red",xlab="lifeexp",ylab="unemployment")
unemployment

6
4
2
0

65 70 75 80

lifeexp

boxplot(lifeexp~happiness,data=data2,col=c("blue","green"))

10
75
lifeexp

65

High Low

happiness

Représenter deux graphiques dans la même figure


par(mfrow= c(1,2))
hist(dada2$lifeexp,col="red")
hist(dada2$unemployment,col="green")

Des conditions sur une base de données


Le nombre d’individus qui vérifient la condition age > 30
setwd("D:\\Enseignement\\EMI\\cours_R\\data2")
data1=read.table("Insee2003.txt",header =TRUE)
table(data1$age>30)

##
## FALSE TRUE
## 25 136
Le nombre d’individus qui vérifient la condition sexe == ”F emme”
table(data1$sex=="Femme")

##
## FALSE TRUE
## 76 85
le nombre d’individus qui vérifient la condition sexe == ”F emme”&age < 40)
table(data1$sex=="Femme" & data1$age<40)

##
## FALSE TRUE
## 132 29
le nombre d’individus qui vérifient la condition:sexe == ”F emme”ou nbr de f reres et soeurs == 4)
table(data1$sex=="Femme" | data1$freres.soeurs==4)

##
## FALSE TRUE

11
## 67 94
les effectifs des individus différents de femmes
table(data1$sex!="Femme" )

##
## FALSE TRUE
## 85 76

Extraire d’une sous population


La fonction subset permet d’extraire des sous-populations de manière plus simple et un peu plus intuitive
que l’indexation directe.
Sélectionner la base qui contient que les homme
dh= subset(data1, sexe=="Homme")

Sélectionner la base de données qui contient que les Femmes


df= subset(data1, sexe=="Femme")

Sélectionner la base de données qui contient que les individus avec un age > 80
dage= subset(data1, age>80)

Utiliser l’argument select pour simplifier l’expression d’une condition sur les colonnes.
Avoir une base de données constituée des deux variables sexe etsport
df1=subset(data1,select= c(sexe, sport))
head(df1)

Sélectionner une base de données constituée de tous les variables à l’exception de âge et bricol sachant que
l’age des individus soit supérieur à 25
df2<- subset(data1, age>25,select=- c(id, age, bricol))
head(df2)

La fonction apply. La fonction prend trois arguments :


• une variable quantitative
• une variable qualitative
• une fonction.
La fonction tapply applique la fonction en arguments aux éléments de la variable quantitative et ce pour
chaque modalité de la variable qualitative.
Calculer l’écart type de l’age selon la pratique du sport:
tapply(data1$age,data1$sport,sd)

## Non Oui
## 17 17

Discrétisation d’une variable


On spécifier manuellement le découpage souhaité: Exemple: découpage par tranches de 20 ans
data1$age20=cut(data1$age, c(0,20,40,60,80,100))
table(data1$age20)

12
##
## (0,20] (20,40] (40,60] (60,80] (80,100]
## 6 47 64 40 4
On peut tenir compte des âges extrêmes pour la première et la dernière valeur
range(data1$age)

## [1] 19 90
data1$age20=cut(data1$age, c(19,20,40,60,80,90))

Combiner des tableaux


d1=subset(data1,select=c("age","sexe"))
d2=subset(data1,select=c("clso"))
d3=cbind(d1,d2)# combiner les deux bases

Remarque: les deux bases doivent avoir le même nombre de lignes

Simulation des lois de probabilité


La simulation des réalisations de n variables indépendantes suivant la même loi X est donnée par la commande:
rloi(n, par1, par2)

Echantillon d’une loi normale


ech1= rnorm(1000,mean =35,sd=2)
hist(ech1,col=c(3))

Histogram of ech1
150
Frequency

0 50

30 34 38

ech1

Echantillon d’une loi Poisson


ech2=rpois(1000,lambda = 3)
hist(ech2,col=c(2))

13
Histogram of ech2
100 200
Frequency

0 2 4 6 8 10

ech2
Echantillon d’une loi binomiale de paramétre n=50 et
p=0.2
ech3=rbinom(1000,50,0.2)
hist(ech3,col="yellow")

Histogram of ech3
250
Frequency

100
0

5 10 15 20

ech3
Echantillon d’une loi uniforme,min=0 et max=1
ech4=runif(1000)
hist(ech4,col="blue")

14
Histogram of ech4
Frequency

80
40
0

0.0 0.4 0.8

ech4
Echantillon d’une loi geométrique
ech5=rgeom(1000,prob=0.2)
hist(ech5,col="orange")

Histogram of ech5
400
Frequency

200
0

0 5 15 25

ech5

Programmation avec R
Boucle for()
for(i in 1:20){
print(i)
}

Boucle while()
j=0
while(j<10){
print("inf à 10")
j=j+1

15
}

instruction if()
if(j<10){
print('vrai')
}else{
print('faux')}

devlopper une fonction


somme=function(a,b){
return(a+b)
}
somme(23,56)

16

Vous aimerez peut-être aussi