Résumé

Elements de base pour R

 

Le but de ce tuto est de vous donner les principes de base de R. Il est loin d’être complet mais c’est un très bon guide d’initiation.

Comment installer R ?

Facile !

Il suffit d’aller sur le site et suivre les instructions.

http://www.r-project.org/

Je vous conseille de télécharger également Rstudio.

http://www.rstudio.com

et le package Rcmdr  depuis la  console R.

Voici comment le faire :

Dans la console R, aller à packages→ installer le (s) package(s) → la fenêtre secure CRAN miroir s’ouvre sélectionner votre pays → packages et sélectionner “Rcmdr” . Une fois que c’est fait,  testez-le en chargeant ce package dans la console R avec la commande library(Rcmdr)

Vous allez utiliser ce processus chaque fois que vous avez besoin de télécharger une librairie.

Pour utilser un package, il faut toujours le mettre  au début de votre script ou dans la console par expemple library(Rcmdr)

 

OPERATEURS

 

Il y a 3 types d’opérateurs : arithmétique, de comparaison et de logique.

Voici les symboles utilisés dans R.

Opérateurs arithmétiques

+ Addition

–  Soustraction

* Multiplication

/ Division

%/% Division entière

^ Puissance

%% modulo

 Opérateurs de comparaison

< Inférieur 

> Supérieur

<= Inférieur ou égal

>= Supérieur ou égal

== égal

!= différent

Opérateurs logiques

!x  NON logique

x & y ou bien x && y  ET logique

x|y ou bien x||y OU logique

xor(x, y) OU exclusif

FONCTIONS DE BASE

 

Quand vous ouvrez R, une demi-page qui commence par R version 4.2.1 … et se termine par le symbole > et là vous pouvez saisir vos commandes.

Si vous avez le symbole + cela signifie que la commande n’est pas terminée et donc ne peut pas être exécutée.

La réponse de R est indiquée en rouge.

La syntaxe de R est très simple :

Une fonction doit toujours être écrite avec des parenthèses, par exp. mean(c(10,20,30))

Un commentaire doit être précédé par #

[1] indique que l’affichage commence au premier élément.

Le nom d’une variable ou d’une série de données doit obligatoirement commencer par une lettre, il peut y avoir des chiffres par exp. x1, Y2, n3…

Il est à souligner que R distingue, les majuscules des minuscules,  donc x et X pourront représenter des variables ou des données complétement différentes.

Pour attribuer une valeur à une variable, utiliser <-

Exemple :

a<-3

b<-4

Si vous tapez a

Vous aurez sa valeur

[1] 3

Si vous voulez faire des opérations par comme l’addition, la multiplication, division… il suffit de taper et vous obtenez le résultat en [1]

a+b

[1] 7

a*b

[1] 12

a/b

[1] 0.75

Vous pouvez mettre les instructions sur la même ligne en les séparant par ;

a+b;a*b; a/b

[1] 7

[1] 12

[1] 0.75

Si vous avez un ensemble de valeurs, vous créez un vecteur pour ensuite effectuer des opérations, par exp

Taille={175,164,170,180,173,168,160}

Poids={70,60,72,75,65,58,54}

Pour R

Taille<-c(175,164,170,180,173,168,160)

Poids<-c(70,60,72,75,65,58,54)

Pour calculer la moyenne par exp. il suffit de :

mean(Taille) ; mean(Poids)

[1] 170

[1] 64.85714

Supposons qu’on veut calculer l’IMC

IMC= Taille^2/Poids

C’est assez intuitif :

IMC<-Taille^2/Poids

> IMC

[1] 437.5 448.3 401.4 432.0 460.4 486.6 474.1

Si vous voulez afficher les données qui sont dans la mémoire, il suffit de taper ls()

ls()

[1] “a”      “b”      “IMC”    “Poids”  “Taille”

Si vous voulez les détails, utilisez ls.str(pat=””)

Par exemple :

ls.str(pat=”IMC”)

IMC :  num [1:7] 438 448 401 432 460 …

ls.str(pat=”Taille”)

Taille :  num [1:7] 175 164 170 180 173 168 160

Pour effacer des données de la mémoire,  utilisez la fonction :

rm(nom de la variable) pour 1 seule variable, par exp.

rm(a)

rm(a)

> a

Erreur : objet ‘a’ introuvable, effectivement a est bien effacé

rm(x, y) pour effacer 2 variables x et y

rm(list=ls()) pour effacer tous les données en mémoire

rm(list=ls(pat= “^nom de la variable”))  pour sélectionner les données à effacer

Exemple

rm(list=ls(pat= “^Taille”))

> Taille

Erreur : objet ‘Taille’ introuvable

Si vous cherchez de l’aide pour une fonction, il suffit de taper dans la console : ? le nom de la fonction. La recherche se fait dans la documentation de R . Par exp :

> ?ls

starting httpd help server … done

Evidemment, vous pouvez lancer une recherche sur le net.

Quelques fonctions pour calculer les  probabilités avec des lois de distribution

Normale : pnorm(x, mean=, sd=)

#Calculer P(x≤120) pour X~ N(100,152)

pnorm(120, mean=100, sd=15)

[1] 0.9087888

Exponentielle : pexp(x, rate=)

#Calculer P(x≥7) pour X~ε(λ=1/7)

1-pexp(7, 1/7)

[1] 0.3678794

Poisson : ppois(x, lambda)

#Calculer P(x≤5) pour X~P(3)

ppois(5, 3)

[1] 0.9160821

Student : pt(x, df)

#Calculer P(X≤1.2) pour X~t(15)

pt(1.2,df=15)

Pearson (­chi-2): pchisq(n, df)

#Calculer P(X≥22.3) pour X~ch-2(15)

1-pchisq(22.3, 15)

#ou

pchisq(22.3, 15,lower.tail = F)

[1] 0.1001756

Binomial: pbinom(x, size, prob)

#Calculer P(x≤6) pour X~B(n=25,P=0.25)

pbinom(6, 25, 0.25)

[1] 0.5610981

Hypergéométrique: phyper(x, m, n, k)

Avec

x : représente l’ensemble de données de valeurs

m : taille de la population

n : nombre d’échantillons prélevés

k : nombre d’éléments de caractéristique dans la population

#Calculer P(x≤3)

phyper(3, 19,11, 5)

[1] 0.619216

binomiale negative: pnbinom(n, size, prob)

#Calculer P(X≤100) pour X∼ BN(r=10; p=0.08)

pnbinom(100, 10, 0.08)

[1] 0.385063

uniforme: punif(x, min=, max=)

#Calculer P(X≤115) pour X∼ U(min=100,max=135)

punif(115, min=100,max=135)

[1] 0.4285714

Notez bien que ces fonctions donnent par défaut les probabilités à gauche c.-à-d. P(x≤a) ce qui fait pour calculer P(x≥a) il faut faire 1- P(x≤a) ou ajouter l’option à la fonction lower.tail = F

Pour calculer la densité de probabilité, remplacer la lettre p par d.

Exemples

#Calculer P(X=100) pour X∼ BN(r=10; p=0.08)

dnbinom(100, 10, 0.08)

[1] 0.01095067

#Calculer P(x=5) pour X~P(3)

dpois(5, 3)

[1] 0.1008188

#Calculer P(x=6) pour X~B(n=25,P=0.25)

dbinom(6, 25, 0.25)

[1] 0.1828195

Pour déterminer le seuil qui correspond à une probabilité, remplacer la lettre p par q

Exemples

#Calculer a tel que P(x≤a)= 0.9088 pour X~ N(100,152)

qnorm(0.9088,mean=100,sd=15)

[1] 120.001. Rappelez-vous qu’on avait trouvé pour P(x≤120) =0.9088

#Calculer b tel que P(x≤b)=0.91 pour X~P(3)

qpois(0.91,3)

[1] 5.

Données

 

Plusieurs façons existent pour manipuler les données dans R, on va voir les plus simples.

On a déjà utilisé la fonction c pour créer un vecteur pour une petite série de donnée.

On reprend l’exemple :

Taille<-c(175,164,170,180,173,168,160)

Pour importer des données stockées dans  un fichier Excel, vous avez plusieurs fonctions, on va donner les détails de celles qu’on utilise dans les modules.

read_excel

D’abord, assurez-vous que votre fichier est sous le bon format xlsx. Voici comment l’importer depuis votre ordinateur.

Indiquer le chemin où se trouve votre fichier. Pour le savoir, click droit→ propriété

emplacement_fichier

Nommer votre jeu de donnée

Mesdonnees<- read_excel (“/Users/Btissam/Documents/Stats_Site/Donnees/Stat1/ExamsNotes.xlsx”,”Exa_Final”)

read.csv()

Assurez-vous que votre fichier est sous le bon format csv.

Mesdonnees<- read.csv(“/Users/Btissam/Documents/Stats_Site/Donnees/Stat1/ExamsNotes.cv”,”Exa_Final”)

Pour toute analyse des données, utiliser le nom que vs avez attribué à votre jeu de données. Ici Mesdonnees

Pour les paramètres de position, moyenne, médiane , quartile. Vous pouvez utiliser des fonctions pour chaque paramètre par exp. mean(Mesdonnees) donne la moyenne. Mais

La fonction summary(Mesdonnees) donne tous ces paramètres de position.

La fonction sd() donne l’écart-type.

Pour créer un tableau de données, une des fonctions est : data.frame(x,y) ou x, y sont des vecteurs de même longueur, vous pouvez avoir plus que 2 vecteurs.

Exemple :

On veut créer un tableau ou l’IMC correspond à la taille et le poids

Taille<-c(175,164,170,180,173,168,160)

Poids<-c(70,60,72,75,65,58,54)

IMC<- c(437.5 448.3 401.4 432.0 460.4 486.6 474.1)

data.frame(Taille,Poids,IMC)

Taille Poids   IMC

1    175    70 437.5

2    164    60 448.3

3    170    72 401.4

4    180    75 432.0

5    173    65 460.4

6    168    58 486.6

7    160    54 474.1

Pour créer une matrice, une des fonctions est:

matrix(data =, nrow = , ncol = , byrow = FALSE, dimnames = NULL

byrow: option qui précise que les valeurs données par data doivent remplir successivement les colonnes (le défaut) ou les lignes (si TRUE).

dimnames permet de donner des noms aux lignes et colonnes

Exemple

Créer les matrices suivantes en nommant les lignes et Colonnes

A    B   C

M   35  10   65

Mat1 =  P   25   75  82

S   3     12    8

 

A   B  C

M  15  10  6

Mat2 =  P   5    7   2

S  30  12  80

Script R

### Création de matrices

Nomligne <-c(“M”,”P”,”S”)

Nomcol <-c(“A”,”B”,”C”)

Mat1 <- matrix(c(35,10,65, 25,75,82, 3,12,8),nrow=3,ncol = 3,

byrow=TRUE,

dimnames = list(Nomligne,Nomcol))

Mat1

Mat2<- matrix(c(15,10,6, 5,7,2, 30,12,80),nrow=3,ncol = 3,

byrow=TRUE,dimnames = list(Nomligne,Nomcol))

Mat2

Faire la somme des 2 matrices

### somme matricielle

SommeMat<-Mat1+Mat2

SommeMat

> SommeMat

A   B    C

M  50  20  71

P     30  82 84

S      33  24  88

 Multiplier Mat1*Mat2

Attention respecter l’ordre,

 Mat1*Mat2 Mat2* Mat1

 

### Produit matriciel,

MultiMat<-Mat1%*%Mat2

MultiMat

> MultiMat

A      B           C

M   2525 1200  5430

P    3210 1759     6860

S     345  210       682

Les valeurs manquantes sont représentées par NA

(Not Available).

les valeurs infinies ±∞ sont représentées Inf et −Inf et celles qui ne sont pas des nombres par NaN (Not a Number) .

Une très grande ou très petite valeur numérique peut-être représentée par une notation exposant ou à la puissance ±n (e+n ou e-n) :

Par exp. X<- 1.5*10^12

X

[1] 1.5e+12

Y<- 2.3*10^-6

Y

[1] 2.3e-06

Pour générer des données régulières :

Une façon très simple est :

X<- a:b

avec a : valeur minimale et b : valeur maximale.

Exemple :

X<-10 :20

C’est une série de 10,11, 12…20 , un pas de 1

Si on veut un pas différent de 1, utiliser la fonction :

seq(a,b,p) où a et b restent des valeurs min. et max et p le pas.

On reprend l’exemple précédant avec un pas de 2

Y<- seq(10,20,2)

[1] 10 12 14 16 18 20

Pour générer une série régulière avec k niveaux et n répétitions, utiliser la fonction

gl(k,n)

Exemple gl(5,3) : 5 niveaux avec 3 répétitions

gl(5,3)

[1] 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5

Levels: 1 2 3 4 5

Pour générer des données aléatoires, il est pratique d’utiliser les fonctions de loi de probabilités sous forme

rfunc(n,p1,p2, . . .) où func est la loi de probabilité, n le nombre de données à générer et p1, p2, . . ., les paramètres propres à la loi. Revenez vers les fonctions déjà vues pour le calcul de probabilité avec des lois de probabilité en remplaçant p par r.

Exemples

rnorm(25, 0,1) génère 25 données aléatoires  selon la loi normale centrée réduite Z(0,1)

[1] -0.15806439 -1.44140675  0.81439699  1.36831073 -1.50009096  0.31995202  0.46803333  2.12871797 -0.38734316

[10]  0.82927372  0.79663089 -0.35690471 -0.35653676  0.53620846  0.06212313 -1.14206442  0.37483228 -0.81710345

[19] -0.12017081 -1.19793800  0.79654906 -0.73273546  0.33337356 -0.08279554  0.90869115

rt(20, 4)  génère 20 données aléatoires selon  la loi Student avec un df de 4.

[1]  0.94411178 -0.08435705  0.26831883  5.92206782  0.64113283 -0.11801267  0.61679028 -1.00470992  0.72792033

[10] -0.07706505  1.28537935 -1.74865798 -1.42324071 -0.65494584 -2.51700444

Les graphiques

 

Vous aurez souvent besoin de représenter vos données par des graphiques, cette section reste dans l’esprit de ce tuto, Donc, on va s’intéresser aux fonctions les plus utilisées en statistique dans nos modules.

Les fonctions principales pour un graphes

plot(x) :  tracer une série de valeurs

plot(x,y) : tracer  y en fonction de x

boxplot(x) : tracer une boite à moustaches

hist(x) : tracer un histogramme

barplot(x) : tracer un graphe avec des barres

qqnorm(x) : quantiles de x en fonction des valeurs attendues selon une loi normale

qqplot(x,y) : quantiles de y en fonction de ceux de x

Toutes ces fonctions ont plusieurs options qui peuvent être utile à commenter et comprendre un graphe comme legend, title, text.

Il y a aussi des fonctions secondaires qui vont avoir une action sur un graphe existant par exemple ajouter des points, des lignes, une autre fonction…

 

Points(x, y) : ajoute des points

lines(x, y) : ajoute des lignes

segments(x0, y0,x1, y1) : ajoute des segments des points (x0,y0) aux points (x1,y1)

arrows(x0, y0,x1, y1, angle=30,code=2) : ajoute des flèches aux points (x0,y0) si code=2, aux points(x1,y1) si code=1, ou aux deux si code=3 ; l’option angle contrôle l’angle de la pointe par rapport à l’axe

abline(a,b) : ajoute une ligne de pente b et  a ordonné  à l’origine.

abline(x,y) : ajoute une fonction

abline(h=y) : ajoute une ligne horizontale sur l’ordonnée y

abline(v=x) : ajoute une ligne verticale sur l’ordonnée x

Cette liste est loin d’être exhaustive mais c’est suffisant pour débuter, vous allez l’étoffer au fur et à mesure de vos besoins.

Il est à noter que vous pouvez ajouter des expressions mathématiques sur un graphe  avec la fonction text et expression qui permet de transformer son argument à une équation mathématique

Exemple :

text(x, y, expression(p == over(1, 1+e^-(beta*x+alpha))))

Exemple

On reprend l’exemple du calcul de l’IMC pour 7 individus.

Individu Taille Poids
1 175 70
2 164 60
3 170 72
4 180 75
5 173 65
6 168 58
7 160 54

Répondre aux questions en utilsant un script R 

  1. Créer un tableau où l’IMC correspond à la taille et le poids de chaque individu.  IMC=Taille^2/Poids, arrondir à 1 digit.
  2. Calculer tous les paramètres de position et de dispersion (ecart-type) pour la taille, le poids et l’IMC.
  3. Tracer les courbes représentant la taille, le poids et l’IMC 
Réponse

Voici le script à télécharger : Exemple_TutoR.txt

Plus pratique de l’exécuter avec Rstudio mais d’abord recopiez le dans un nouveau R script et ensuite exécutez-le

M
Secured By miniOrange