Vous êtes sur la page 1sur 11

I.

Présentation
A. Installation
Sur le site www.cran.r-project.org :
• dans la rubrique Software! R binaries! Windows!base
• télécharger l’exécutable (.exe)
• lancer l’installation par un double clic et suivre les instructions
Vous pouvez télécharger des extensions :
• dans la rubrique Software! Packages! MonPackage
• télécharger MonPackage.zip
• installer le package dans R ("install from local zip")
• charger le package ("load package")
• Il existe des versions, Windows, MacOs et Linux.
• Outils disponibles :
R est un langage de programmation orienté objet (il consiste en la définition et l’interaction
de briques logicielles appelées objets (concept, idée, entité du monde physique. Il possède une
structure interne et un comportement et il sait communiquer avec ces pairs. Il s’agit donc de
représenter ces objets et leurs relations; la communication entre les objets via leurs relations
permet de réaliser les fonctionnalités attendues, de résoudre le ou les problèmes).
• des fonctions de "base’’
• des librairies complémentaires (1800 sur le site CRAN)

Pourquoi utiliser R ?
• R permet de faire des graphiques très flexibles et d’une qualité exceptionnelle
• R permet de construire facilement vos propres fonctions
• R est facile à interfacer avec d’autres langages
• R est aussi un logiciel mathématique (calcul matriciel, intégration numérique,
optimisation, ...)
• Beaucoup de développements en R (librairies spécialisées)
Pourquoi utiliser R plutôt que SAS ou SPSS ?
• la plupart des analyses statistiques possibles en SAS, SPSS sont aussi faisables en R
• les graphes sont bien plus jolis
• R est très facile à utiliser
• R est gratuit
Pourquoi utiliser R plutôt que Excel ?
• Excel n’est pas un logiciel statistique !

B. Comment utiliser R
• Lancer R
• double-clic sur l’icône
• Taper des commandes
• fenêtre terminal
• Interrompre des calculs
• touche ESC

Cours LOGICIEL R | Pr. H .CHAMLAL 1


> apparait au début de chaque ligne de commande (+ si la ligne d’avant est incomplète)

1. Comme une calculatrice :


taper exactement l’instruction ci-dessous dans la fenêtre terminal
10+2
Ce qu’on voit dans la fenêtre terminal :
> 10*2
[1] 20
• Attention, ne pas taper le signe supérieur ">", qui est en fait l’indicateur (ou prompt) disant
que le système est prêt à écouter les commandes.
• R renvoie le résultat (ici, 20) précédé de [1]
• R connaît de nombreux noms de fonctions mathématiques
> log(2)+exp(0.5)*(4**2)+sqrt(4)+cos(pi)
[1] 28.07269
log, exp, sqrt, cos sont des fonctions R (voir plus loin).
• Comme un langage :
On peut affecter le calcul précédent à un objet :
> x<-log(2)+exp(0.5)*(4**2)+sqrt(4)+cos(pi)
>x
[1] 28.07269
x contient maintenant le résultat du calcul et peut être utilisé comme tel :
> log(x)
[1] 3.334797

2. Fichier de commande
Il est conseillé de créer un fichier de commandes (fichier "script")
• Fichier>Nouveau script
• enregistrer le script dans votre répertoire de travail

Cours LOGICIEL R | Pr. H .CHAMLAL 2


Pour soumettre une ligne de commande
• placer le curseur sur cette ligne ou la sélectionner
• cliquer sur
A partir de maintenant, habituez-vous à taper toutes vos commandes dans un fichier script, et
sauvez-le à la fin de la séance.
Le script sert de fichier de commande dans le langage R et peut être utilisé comme un
“programme“, composé de commandes qui s’exécutent l’une après l’autre et de fonctions
(modules) qui peuvent être appelées.

II. Les objets


• Les vecteurs

Créer des vecteurs on utilise la fonction c( )

> x=c(1,4,9)

> y=c(x,2,3)

> y

[1] 1 4 9 2 3

• Suite arithmétique

Suites arithmétiques de raison 1 ou -1 : c(a:b).

> c(1:4) # a<b raison 1 > c(4:1) # a>b raison -1

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

> c(1.4:7) # a-b n'est pas un entier

[1] 1.4 2.4 3.4 4.4 5.4 6.4

• Génér. seq(a,b,t) où a est le premier terme, le dernier  b et la raison t

• X<-rep(y ,n) pour créer un vecteur constitué de l'élément y répété n fois.

(y peut être un scalaire ou un vecteur)

o Importer des données

X<-scan("data.dat") : pour créer un vecteur à partir de données stockées dans un fichier, ici
data.dat(ou un fichier .txt)

• Les matrices

o Créer des matrices

Les matrices sont créées avec la fonction matrix( ) à partir d'un vecteur. On doit fixer le nombre de
colonnes ncol et/ou le nombre de lignes nrow.

> x <- matrix(c(2,3,5,7,11,13),ncol=2)

Cours LOGICIEL R | Pr. H .CHAMLAL 3


Par défaut la matrice est remplie colonne par colonne. Pour remplir ligne par ligne, on ajoute
l'argument byrow=T

> y <- matrix(c(2,3,5,7,11,13),ncol=2, byrow=T)

>x >y

[,1] [,2] [,1] [,2]

[1,] 2 7 [1,] 2 3

[2,] 3 11 [2,] 5 7

[3,] 5 13 [3,] 11 13

Attention : si la dimension du vecteur n'est pas égale au produit (ncol x nrow) alors l'opération
effectuée est la suivante :

> matrix(c(1:3), ncol=2,nrow=3)

[,1] [,2]

[1,] 1 1

[2,] 2 2

[3,] 3 3

> matrix(c(1:3), ncol=2)

[,1] [,2]

[1,] 1 3

[2,] 2 1

o Extraire des éléments

> vect=c(1.1:9.1) > mat=matrix(vect,ncol=3,nrow=3)

> vect [1] > mat[2,1]

[1] 1.1 [1] 2.1

> mat[,1] #1er colonne > mat[3,] # ligne n°3

[1] 1.1 2.1 3.1 [1] 3.1 6.1 9.1

> vect[c(2,4,8)]

[1] 2.1 4.1 8.1

> mat[2:3,1:2] # sous matrice de la ligne 2 à 3 et la col 1à2

[,1] [,2]

Cours LOGICIEL R | Pr. H .CHAMLAL 4


[1,] 2.1 5.1

[2,] 3.1 6.1

Attention : vect[-j] retourne le vect sans la j ème coordonnée.

> vect[- c(2,4,8)]

• Opérations sur les Matrices/Vecteurs

Les opérations + * - / entre 2 vecteurs ou matrices de même dimension sont des opérations terme à
terme :

> x=c(1:5) > y=c(rep(0,3),rep(1,2)) >A


>x [,1] [,2]
[1] 1 2 3 4 5 [1,] 2 1
>y [2,] 4 9
[1] 0 0 0 1 1 >B
> x*y [,1] [,2]
[1] 0 0 0 4 5 [1,] 0 2
[2,] 1 1
> A*B
[,1] [,2]
[1,] 0 2
[2,] 4 9

Attention : Si les vecteurs ne sont pas de même longueur, le plus court est complété automatiquement.

> x <-c(1:5)

>x x:12345

[1] 1 2 3 4 5 y:12121

> y<-c(1,2) -----------------

>y x+y : 2 4 4 6 6

[1] 1 2

>x+y

[1] 2 4 4 6 6

o Quelques opérations particulières sur les matrices

> a<-matrix(1,ncol=2,nrow=2)

>a

[,1] [,2]

[1,] 1 1

Cours LOGICIEL R | Pr. H .CHAMLAL 5


[2,] 1 1

> a+3 #matrice +scalaire

[,1] [,2]

[1,] 4 4

[2,] 4 4

> a+c(1:2) #matrice + vecteur

[,1] [,2]

[1,] 2 2

[2,] 3 3

o Action d’une fonction sur un vecteur ou une matrice

Soit FUN une fonction définie sur les scalaires qui retourne un scalaire.

Par exemple

sqrt square root

abs absolute value

sin cos tan trigonometric functions (radians)

exp log exponential and natural logarithm

log10 common logarithm

gamma lgamma gamma function and its natural log

Lorsque le paramètre d’entrée est un vecteur (respectivement une matrice),la fonction FUN est
appliquée sur chacune des composantes. L’objet retourné est un vecteur (respectivement une matrice).

Exemple

Si A = (ai,j ) est une matrice, alors exp(A) retourne une matrice constituée des éléments e ai,j.

Quelques fonctions sur les matrices

• Le produit matriciel est obtenu avec : % * %

Exemple :

> A<-matrix(1:16, 4, 4, TRUE)

>A

> B=<-matrix(1:16, 4, 4, TRUE)

>B

Cours LOGICIEL R | Pr. H .CHAMLAL 6


> A% * %B # (n,m)*(m,k)

• Transposé d’une matrice : t(A)

> matrix(1:3, nrow=3, ncol=3)

> t(matrix(1:3, nrow=3,ncol=3))

• Calcul du déterminant : det

> m <- matrix(c(1,2,3,4), nrow=2)

> det (m)

> t(m)

• Matrice diagonale : diag

> diag(c(1,2))

> diag(1,2)

> diag(rep(1,2))

> diag(2)

• Trace d’une matrice : sum(diag( ))

> sum(diag(m))

• Inverse d’une matrice: solve

solve(A) retourne l’inverse de la matrice A

solve(A,b) retourne x tel que Ax = b

Exemple

> solve(A)

Généralement, on n’a pas besoin de l’inverse d’une matrice, mais simplement de multiplier par
l’inverse d’une matrice (c’est plus rapide et numériquement plus stable)

> solve(A,x)

> solve(A) %*% A

Calcul des valeurs/vecteurs propres : eigen donne les valeurs et vecteurs propres

> eigen (m) $values (pour avoir les valeurs propres)

> eigen (m) $vectors (pour avoir les vecteurs propres)

On vérifie qu’on a effectivement diagonalisé la matrice

> p <- eigen(m) $vectors

Cours LOGICIEL R | Pr. H .CHAMLAL 7


> d <- diag (eigen(m) $values)

> p %*% d %*% solve (p)

Matrice triangulaire inférieure et supérieure d’une matrice

> M<- matrix(1:16, nrow=4)

> lower.tri(M)

> upper.tri(M, diag = TRUE)

> matrix(data=1:6,nr=2,nc=3, dimnames=list(c("row1", "row2"), c("C.1", "C.2", "C.3")))

C.1 C.2 C.3

row1 1 3 5

row2 2 4 6

Calcul matriciel (Résumé)

➢ La transposé d’une matrice : la fonction t() ; ça marche aussi avec un data frame ;

➢ Pour extraire la diagonale d’une matrice : la fonction diag() ;

➢ Le déterminant d’une matrice : la fonction det( ) ;

➢ Pour calculer l’inverse d’une matrice : solve(A)

➢ Les valeurs et vecteurs propres d’une matrice : eigen(A)

➢ Pour résoudre un système d’équations :Ax = b on utilise la fonction solve() comme suit :

solve(A,b)

o Extraire les éléments d’un vecteur

Pour extraire les éléments d’un vecteur, on peut utiliser des instructions logiques.

extraire les composantes >8 : vect[vect>8] : vect>8 est un vecteur de TRUE et FALSE, on extrait les
composantes affectées à TRUE.

extraire les composantes >8 ou <2 : vect[(vect>8) | (vect<2)]

extraire les composantes >8 et <10 : vect[(vect>8) & (vect<10)]

• Les fonctions à plusieurs variables

Fonctions de deux variables

• f une fonction de deux variables f : (x; y) f (x; y)

• x et y deux vecteurs de même dimension.

La commande f(x,y) retourne le vect constitué des éléments f (xi ; yi ) .

Cours LOGICIEL R | Pr. H .CHAMLAL 8


Si x et y ne sont pas de même dim, celui de plus petite dim est répété.

o Tableaux croisés

La fonction outer retourne une matrice de la forme:

M(i; j) = fun(xi ; yj )

> x<-1:5

> y<-1:5

> M<-outer (x, y, ’fun’)

fun peut aussi être une opération élémentaire + / - *

• La structure générale d'une fonction est :

> myname = function(liste_des_paramètres)

+{

+ commandes # le symbole + s’inscrit automatiquement

+ list(variables-retournées-par la fct (sortie))

Les accolades { et } définissent le début et la fin de la fonction.

La dernière instruction contient le ou les noms des objets retournés par la fonction.

On peut donner des valeurs par défaut aux paramètres

On définit une fonction ainsi:

> f <- function(x) {

x^2 + x + 1

} # la valeur de retour est la dernière valeur calculée (mais on peut aussi

utiliser la commande return)

On peut donner des valeurs par défauts aux arguments

> f <- function(x, y=3) { … }

Lors de l’appel de la fonction, on peut utiliser le nom des arguments, sans tenir compte de leur ordre

> f( y=4, x=3.14)

A la fin des arguts, on peut mettre 3 points de susp, qui représentent tous les arguts qu’on n’a pas
précisés, et que l’on peut passer en argut à d’autres fcts.

> f <- function( x, … ) {

Cours LOGICIEL R | Pr. H .CHAMLAL 9


plot ( x, …)

• Les fonctions usuelles plot( ), lines( ), points( )

plot est la fonction centrale, Les fonctions points ou lines sont utilisées pour superposer des courbes
ou des nuages de points.

Exemple 1 : représenter des vecteurs plot(y) / plot(x,y)

> x<-seq(-4, 4, .1)

> y<-log(x^2+1/x^2)

pour fixer les limites des axes


ylim=c(ay,by) et xlim=c(ax,bx)
par défaut les bornes sont
optimisées sur la première
courbe tracée
type="p" (points) ou "l" (ligne):
pour tracer une ligne ou un nuage
de points.
• pch : type de points
• lty : type de lignes
• col : couleur

Cours LOGICIEL R | Pr. H .CHAMLAL 10


Usage de pch(les différents types de points)

Pch1 donne cercle,……


Pch3 donne +
Un point peut être omis en utilisant pch = NA.
Par défaut pch=1
Les arguments suivants peuvent être utilisés pour changer
la couleur et la taille des points:
• col : couleur (code hexadécimal ou nom) des points
• bg : La couleur de remplissage des symboles ouverts. Ceci
peut être utilisé seulement quand pch = 21:25.
• cex : La taille des points
• lwd : l’épaisseur du trait des symboles
# Changer la couleur plot(x, y, pch=19, col="darkgreen",
cex=1.5) # La couleur peut être un vecteur plot(x, y, pch=19,
col=c("green", "red")) # Changer le type de point, la couleur des
traits, # celui de remplissage et l'épaisseur des traits plot(x, y, pch
= 24, cex=2, col="blue", bg="red", lwd=2)

• Représentation d’une fonction de R2

> x <- seq(-10, 10, length= 30)


> y <- x
> f <- function(x,y) { r <-
sqrt(x^2+y^2); 10 * sin(r)/r }
> z <- outer(x, y, f)
> persp(x, y, z, theta = 30, phi = 30,
expand = 0.5, col = "lightblue")

TP1 :

Exercice 1
1. Créer le vecteur x=(101;102;. . . ;112).
2. Créer un vecteur de longueur 12 formé de 4 fois la suite de nombres (4;6;3).
3. Créer un vecteur composé de huit 4, de sept 6 et de cinq 3.
Exercice 2
1. Saisir la variable poids contenant les 15 valeurs suivantes :
28; 27.5; 27; 28; 30.5; 30; 31; 29.5; 30; 31; 31; 31.5;32; 30; 30.5.
2. Saisir la variable poids1 contenant les 5 valeurs suivantes :
40; 39; 41; 37.5; 43.
3. Sans refaire de saisie, créer la variable nouveau.poids contenant 20 valeurs
(les 5 valeurs de poids1 répétées 2 fois et les 10 dernières valeurs de poids).

Cours LOGICIEL R | Pr. H .CHAMLAL 11

Vous aimerez peut-être aussi