Cours 2 Vecteurs Matrices listes data frames
Généralités pour un objet… Un objet est caractérisé par son nom, son contenu, mais aussi ses deux attributs son mode: il en existe quatre principaux: numérique, caractère, complexe et logique sa longueur: nombre d’éléments de l’objet Pour connaître son mode et sa longueur, on peut utiliser respectivement les fonctions mode() et length() Une valeur manquante est représentée par NA, (mot réservé) Une valeur de mode caractère est représentée entre guillemets doubles
Génération de vecteurs En saisissant les valeurs séparées par des virgules à l’aide de la fonction c() : exemple: v=c(1,2,3) En générant des suites numériques l’opérateur : exemple v=1:10 les fonctions seq(): génère des suites régulières rep(): duplique une suite sample():effectue un tirage aléatoire En utilisant d’autres vecteurs et des opérations numériques +,-,*, /, ^ ou logiques (&,I,!,>, =,<=,==,!=)
Exemples: Si v1 et v2 sont deux vecteurs de même longueur, v3=v1+v2 V3=v1/v2 V3=v1^2 V3=v1>v2 paste( ): colle des vecteurs terme à terme après les avoir transformé en chaine de caractères: exemple paste(c(0,1,2),c(a,b,c)) “ 0a “ “ 1b “ “ 2c “
Séléction d’éléments dans un vecteur Deux modes de sélection ● Utiliser les indices de position des éléments de v ● Utiliser un vecteur booléen de même longueur que v, valant TRUE aux positions des éléments à sélectionner Exemples: v= -3:2; v[3];v[c(4,6)] ;a=c(4,6); v[a]; l=c(TRUE, TRUE, TRUE,FALSE,TRUE,FALSE); v[l]; l=v>0; v[l] l=which(v<0); v[l]
La fonction which() donne les positions pour lesquelles l’indicateur logique vaut TRUE. Exemple:v=c(1,2,3,4); which(v>2) 3 4 La fonction which()
“Dé-sélectionner” un élément dans un vecteur Utilisation d’indices négatifs pour dé-selectionner Exemple: w=c(1:4);w; [ 1] v=w[-4] ;v; [ 1] 1 2 3
La fonction rep() rep(x, times) x=1:4;y=rep(x,2);y Avec l’argument each z=rep(x,each=2);z; w=rep(x,c(1,2,1,2)); w ;
La fonction seq() crée une suite régulière Arguments principaux: from, to, by, lenght Exemples: x=seq(17); x; y=seq(from=3,to=8);y; y=seq(3,8);y;
La fonction seq() suite Argument by z=seq(from=3,to=8,by=0.5);z; Argument lenght t=seq(0,1,lenght=11);t;
Exemple d’utilisation de seq() x=seq(-3,3,by=0.05); y=exp(x); plot(x,y); > x [1] [13] [25] … 3.00
> y [1] [7] [13] [19] [25] … [121]
Construction de courbes
Un vecteur comme représentation d’une série statistique simple Soit x=c(x1,…,xn) On peut calculer la moyenne Mox=sum(x)/length(x) ou mean(x) La variance Vax par sum((x-mean(x))^2)/length(x) L’écart-type par Etx=sqrt(Vax)
Pour une série statistique pondérée… La moyenne, si x=c(x1,x2,…,xn) est pondérée par p=c(p1,p2,…pn), on peut poser A=p*x; B=p*(x^2) Et grace à ces vecteurs on peut calculer la moyenne des xi (formule i pixi) par m=sum(A) Ou la variance des xi (formule i pi(xi- m) 2 ) par v=sum(p*(x-m)^2) ou par la formule de Koenig (formule v= E(x^2)-E(X)^2) v= sum(B)-m^2
de même pour le moment centré d’ordre k, dont la formule est... On peut …
Compléments sur les vecteurs Il y a quatre types de base: Numériques, caractères, logiques, facteurs A chaque type correspond ses opérateurs. Par exemple on ne peut pas additionner des vecteurs caractères. Par contre on peut,bien sur, si v et w sont des vecteurs numériques, effectuer les opérations: w=v+2: ajoute 2 à tous les éléments de v k=v+w : attention si les deux vecteurs ne sont pas de même longueur, donne un vecteur de la longueur du plus grand, en dupliquant le plus court
On peut modifier ou tester le mode d'un vecteur as.numeric() :impose le mode numérique is.numeric() :booléen TRUE ou FALSE as.character() :impose le mode caractère is.character() :booléen TRUE ou FALSE as.factor(),is.factor(), as.logical(),is.logical()… Certaines fonctions modifient le mode d'un objet: factor(): contraint à être facteur cut():contraint un vecteur numérique à être un facteur paste(): transforme en chaine de caractères etc...
Exemples de conversion d ’objets Conversion en numérique:as.numéric() FALSE->0 TRUE ->1 “ 1 ”, “ 2 ”,..->1,2, “ A ”->NA Conversion en logique: as.logical() 0->FALSE autres nombres ->TRUE “ FALSE”->FALSE“ TRUE” ->TRUE autres caractères ->NA Conversion en caractère:as.character() 1,2,…-> “ 1 ”, “ 2 ” FALSE- > “ FALSE ” TRUE -> “ TRUE ”
Génération de nombres aléatoires Rappel: Un échantillon est une partie d'une population sur laquelle s'éffectue une étude statistique. On peut disposer d'échantillons issus d'une expérimentation, ou, si on connait la loi de la variable parente X,(de distribution connue) simuler ces observations: on parlera d'échantillon empirique (ou observé) et d'échantillon simulé. La taille d'un échantillon est le nombre d'observations de l'échantillon
Exemple 1 X: v.a.r taille de la population P Un échantillon de taille 5 issu d'une expérimentation: E=c(1.60,1.80,1.72,1.78,1.63) Un échantillon simulé la loi uniforme discrète U (n)(où les pi sont tous égaux):sample() E=sample(1:15,10);a; [1]
Exemple 2: lois discrètes La loi binomiale B(n,p), rbinom() P ( X = k )=[n!/p!(n-p)!] p^k ( 1 - p )^n-k rbinom(10,10,0.3) [1] rbinom(100,10,0.3) [1]
la loi de Poisson P ( ):rpois() (rappel: p(X=k)=e^{- } ^k/k!) exemple: b=rpois(10, 5);b [1] la loi géométrique g (p): rgeom() (rappel:p(X=k) = p (1-p)^k ) c=rgeom(10,0.25); c; [1]
La loi normale N (m, ): Exemples: Un échantillon simulé de taille 10 en supposant que X suit une loi normale de paramètres (1,75;15) x=rnorm(10,175,15);x [1] rnorm(100):génère 100 observations issues de la loi normale de paramètres 0 et 1 (par défaut) rnorm(100, mean=2,var=3): génére 100 observations issues de la loi normale de paramètres 2 et 3
Quelques précisions sur la fonction sample() Plusieurs sens sample():échantillon, tirages avec ou sans remise, permutations exemples: v1= sample(1:10) : permutation de{1,2,..,10} v2= sample(1:10,3) : tirage sans remise (par défaut )de 3 éléments parmi 10 v3= sample(1:2,10,replace=TRUE) : tirage avec remise de 10 valeurs 1 ou 2 au hasard pour un tirage non uniforme on précise le vecteur probabilité(p1,…pn) avec pi=1. v4=sample(1:5,3,prob=c(0.1,0.2,0.1,0.5,0.1))
Tableau Comparatif ouiNumérique, caractère, complexe logique Liste list ouiNumérique,caractère,complexe logique Série temporelle ts OuiNumérique,caractère,complexe logique Data.frame NonNumérique,caractère,complexe logique Matrice matrix NonNumérique,caractère,complexe logique Tableau array NonNumérique,caractèreFacteur factor NonNumérique,caractère,complexe logique Vecteur vector Plusieurs modes Modes possibles