Vous êtes sur la page 1sur 6

Installation

Notes de Cours sur le logiciel R

Anne PHILIPPE Le logiciel R est un freeware disponible sur le site


http ://cran.r-project.org/
Université de Nantes, Il existe des versions
Laboratoire de Mathématiques Jean Leray
email : Anne.philippe@math.univ-nantes.fr Windows
MacOS X
Linux ...
Extrait du document
http://www.math.sciences.univ-nantes.fr/∼philippe/download/Anne-Philippe-cours-R.pdf Outils disponibles :
un langage de programmation orienté objet
14 janvier 2010
des fonctions de "base"
des librairies/packages complémentaires (1800 sur le site CRAN)

Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 1 / 24 Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 2 / 24

Utiliser l’aide Éditeur


Un éditeur de texte intégré au logiciel R

> help("plot")
> ?plot
> help.search("plot")

Les démos :
> demo() # pour obtenir la liste des demos
> demo(graphics)

Les exemples : Ctrl R exécute la ligne sur laquelle se trouve le curseur ou les lignes
La fonction example exécute les exemples d’un bloc sélectionné.
généralement inclus à la fin des fichiers
d’aide. source("nom-du-fichier.R") pour exécuter le code contenu dans le
fichier nom-du-fichier.R
> example(FUN)
Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 3 / 24 Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 4 / 24
Opérations élémentaires Créer des vecteurs

1 Opérations élémentaires sur les scalaires : ∗, −, +, /, ˆ


>2+4
6 la fonction c( ) concatène des scalaires ou des vecteurs pour créer un
vecteur :
2 Opérations avec affectation (avec ou sans affichage)
> x=c(1,4,9)
>x=2+4 > y=c(x,2,3)
>x > y
6 [1] 1 4 9 2 3
>(x=2+4) # avec affichage du résultat
6 Suites arithmétiques allant de a à b par pas de 1 si (a<b) et par pas
3 Les principaux types sont de -1 si (a>b) : .
entier , réel, complexe > c(1:4) # a<b raison 1 > c(4:1) # a>b raison -1
caractère [1] 1 2 3 4 [1] 4 3 2 1
logique : TRUE, FALSE, NA (not available)
4 Les objets de base sont
vecteurs, matrices

Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 5 / 24 Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 6 / 24

Importer/exporter des données

Généralisation : seq(a,b,t) est la suite allant de a à b par pas de t


par exemple la suite allant de 1 à 4 par pas de 0.1
1 pour créer un vecteur à partir de données stockées dans un fichier,
> seq(1,4, 0.1)
[1] 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 2.3 .... x=scan("data.dat") où data.dat est le nom du fichier.
[26] 3.5 3.6 3.7 3.8 3.9 4.0 2 Importer un tableau :
x=rep(y ,n) pour créer un vecteur constitué de l’élément y répété n x=read.table("data.dat")
fois. (y peut être un scalaire ou un vecteur) par exemple x=read.table("data.dat", header=TRUE)
> rep(1,4) L’instruction header=TRUE permet de préciser que la première ligne
[1] 1 1 1 1 du fichier contient le nom des colonnes du tableau.
3 Exporter : write, write.table

Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 7 / 24 Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 8 / 24
Créer des matrices Concaténer des vecteurs/matrices

rbind
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.
cbind
> x = matrix(c(2,3,5,7,11,13),ncol=2)
> x=1:10
Par défaut la matrice est remplie colonne par colonne. Pour remplir ligne > y=x^2
par ligne, on ajoute l’argument byrow=T > rbind(x,y)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
> y = matrix(c(2,3,5,7,11,13),ncol=2, byrow=T) x 1 2 3 4 5 6 7 8 9 10
> x > y y 1 4 9 16 25 36 49 64 81 100
[,1] [,2] [,1] [,2] > cbind(x,y)
[1,] 2 7 [1,] 2 3 x y
[2,] 3 11 [2,] 5 7 [1,] 1 1
[3,] 5 13 [3,] 11 13 [2,] 2 4
[3,] 3 9
[4,] 4 16
[5,] 5 25
[6,] 6 36
Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 9 / 24 etc
Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 10 / 24

Extraire des éléments d’un vecteur ou d’une matrice Opérations sur les Matrices/Vecteurs
> mat=matrix(vect,ncol=3,nrow=3)
> vect=c(1.5:9.5 ) [,1] [,2] [,3] • Les opérations + * - / entre 2 vecteurs ou matrices de même dimension
> vect [1,] 1.5 4.5 7.5 sont des opérations terme à terme.
[1] 1.5 2.5 3.5 4.5 5.5 [2,] 2.5 5.5 8.5
6.5 7.5 8.5 9.5 [3,] 3.5 6.5 9.5 > x=c(1:5)
> y=c(rep(0,3),rep(1,2))
Extraire un élément Colonne/ligne d’une matrice > x
> vect[1] > mat[2,1] > mat[,1] > mat[3,] [1] 1 2 3 4 5
[1] 1.5 [1] 2.5 [1] 1.5 2.5 3.5 [1] 3.5 6.5 9.5 > y
[1] 0 0 0 1 1

Extraire un bloc ou plusieurs coordonnées > x+y


> mat[2:3,1:2] > vect[c(1,3,7)] [1] 1 2 3 5 6
[,1] [,2] [1] 1.5 3.5 7.5 > x*y
[1,] 2.5 5.5 [1] 0 0 0 4 5
[2,] 3.5 6.5 > x/y
[1] Inf Inf Inf 4 5
Attention : vect[-j] retourne le vecteur vect sans la j ème coordonnée >
> vect[-c(1,3,7)] retourne 2.5 4.5 5.5 6.5 8.5 9.5
Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 11 / 24 Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 12 / 24
Quelques opérations sur les matrices
fonctions standard
> a=matrix(rep(1,4),ncol=2,nrow=2)
[,1] [,2]
[1,] 1 1
[2,] 1 1 ^ puisance
> b=matrix(2:5,ncol=2,nrow=2) sqrt square root
[,1] [,2] abs absolute value
[1,] 2 4 sin cos tan trigonometric functions (radians)
[2,] 3 5 exp log exponential and natural logarithm
> a+b #(a(i,j) +b(i,j)) log10 common logarithm
[,1] [,2] gamma lgamma gamma function and its natural log
[1,] 3 5
[2,] 4 6 Lorsque le paramètre d’entrée est un vecteur (respectivement une matrice),
> a*b #(a(i,j) * b(i,j)) produit terme à terme
la fonction FUN est appliquée sur chacune des composantes. L’objet
[,1] [,2]
[1,] 2 4 retourné est un vecteur (respectivement une matrice).
[2,] 3 5 Exemple
> a%*%b # produit matriciel si x = (x1 ...xn ) est un vecteur alors x 2 retourne le vecteur (x12 ...xn2 )
[,1] [,2]
Si A = (ai,j ) est une matrice, alors exp(A) retourne une matrice constituée
[1,] 5 9
[2,] 5 9 des éléments e ai ,j .

Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 13 / 24 Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 14 / 24

plot(y)
Les fonctions usuelles plot(), lines(), points()
Ces fonctions retournent un scalaire :

4
plot est la fonction centrale

3
P Q
sum() (somme xi ), prod() (produit i xi ), mean() (moyenne Le fonctions points ou lines sont utilisées pour superposer des

y
i
1 Pn

2
n x
i=1 i ) courbes ou des nuages de points.

1
max(), min() Premier exemple : représenter des vecteurs plot(x,y)
0 20 40 60 80
length() (longueur du vecteur), > x= seq(-4,4,.1) > y=log(x^2+1/x^2)
Index
dim(), ncol(), nrow() (dimension de la matrice/nombre de
lignes / nombre de colonnes.)
plot(x,y,pch=3)
Ces fonctions retournent un vecteur :
Pn
cumsum() (sommes cumulées (x1 , x1 + x2 , . . . , i=1 xi ), cumprod()
4

(produits cumulés),
3
y

sort (tri)
2
1

-4 -2 0 2 4

Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 15 / 24 Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 16 / 24
Quelques arguments de la fonction plot Superposition de courbes
type=p
superposer des courbes

4
On dispose de x et y deux vecteurs

2
commentaire

5
0
pour fixer les limites des axes 0 5 10 15 20 25 30
de dimension 20
Index

ylim=c(ay,by) et xlim=c(ax,bx) type=l #nuage de points

4
par défaut les bornes sont optimisées > plot(x,y)

4
x
sur la première courbe tracée

2
#ajouter un nuage de points

3
0 5 10 15 20 25 30
> points(x+.1,y+.1, pch=2)
type="p" (points) ou "l" Index

y
#ajouter une ligne
(ligne) : pour tracer une ligne ou un type=s
> lines(sort(x),y, lty=2)

2
nuage de points.

4
#ajouter une ligne horizontale

2
0
pch : type de points 0 5 10 15 20 25 30
> abline(h=3)

1
Index #texte + titre
lty : type de lignes. type=h > text(1,5,"commentaire")
>title("superposer des courbes")

0
col : couleur
4
x

2
-1 0 1 2
0
0 5 10 15 20 25 30
x
Index

Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 17 / 24 Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 18 / 24

Autour des lois de probabilités


Pour sauvegarder un graphique :
utilisation de la fonction dev.print. Soit X une variable aléatoire de loi PX
Par exemple pour obtenir un fichier pdf : dev.print(pdf, (P
x∈A P(X = x) loi discrète
file="nom-du-fichier.pdf")
Alternative : utilisation des menus PX (A) = P(X ∈ A) = R
A f (x)d
.x loi continue

La fenêtre graphique peut être fractionnée en utilisant Pour les lois classiques, des fonctions existent pour
par(mfrow=c(n,m)), on obtient alors n × m graphiques sur une même calculer (
page organisés sur n lignes et m colonnes P(X = x) pour les lois discrètes
split.screen(m,n) la densité
f (x) pour les lois continues
screen(i), screen(i,FALSE) pour sélectionner la sous fenêtre
la fonction de répartition F (x) = P(X ≤ x)
erase.screen()
close.screen(all = TRUE) les quantiles F − (u) = inf{x : F (x) ≥ u} 1
simuler des nombres aléatoires suivant la même loi que X .

1. Si F est une bijection alors F − = F −1


Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 19 / 24 Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 20 / 24
Quelques lois disponibles Exemple (loi discrète)

Soit X une variable aléatoire dont la loi est la loi de poisson de paramètre a
1 Lois discrètes 1
dpois(x,a) calcule P(X = x) = e −a ax x!
Loi binomiale (n,p) binom
Loi hypergéométrique (N,n,k) hyper ppois(x,a) calcule la fonction de répartition
Loi de Poisson (a) pois x
Loi géométrique (p) geom
X
F (x) = P(X ≤ x) = P(X = i)
Loi à support fini {(ai , pi ), i = 1...m} sample
i=0
2 Lois continues
Loi Gaussienne (m,σ 2 ) norm qpois(α,a) calcule le quantile d’ordre α c’est à dire
Loi uniforme sur [a, b] unif
Loi de Student à ν degrés de liberté t Q(α) = inf{x : F (x) ≥ α}
Loi du χ2 à ν degrés de liberté chisq
rpois(n,a) : échantillon de taille n

Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 21 / 24 Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 22 / 24

Exemple (loi continue) Exemple de la loi gaussienne (suite)

Répresentation de f , F , Q et un échnatiilon de taille 10.


La loi de X est la loi gaussienne de moyenne 0 et de variance 1 Gaussian N(0,1) distribution
cdf
density
2
dnorm(x,0,1) calcule la densité au point x, f (x) √12π e −x /2

0.0 0.1 0.2 0.3 0.4

0.0 0.2 0.4 0.6 0.8 1.0


dnorm(x)

pnorm(x)
pnorm(x,0,1) calcule la fonction de répartition au point x
Z x
F (x) = f (t)t. -4 -2 0

x
2 4 -4 -2 0

x
2 4

−∞
quantile function random values

qnorm(α,0,1) : quantile d’ordre α, Q(α) = F −1 (α)

0.0 0.5 1.0 1.5 2.0


4
2

rnorm(10)
qnorm(u)

(F est une bijection de R dans [0, 1] )


-4 -2 0

rnorm(n,0,1) : échantillon de taille n


0.0 0.2 0.4 0.6 0.8 1.0 2 4 6 8 10

u Index

Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 23 / 24 Anne PHILIPPE (U. Nantes) Logiciel R 14 janvier 2010 24 / 24

Vous aimerez peut-être aussi