Cours 1 Installer R Premiers Pas
Généralités sur R R est un système d ’analyse statistique et graphique, clone de S+ (très cher), basé sur le langage S (statistiques),écrit essentiellement en C Logiciel permettant: ➢ Manipulation et transformation de données brutes ➢ Analyses statistiques ➢ Génération de graphiques prêts à être publiés R est gratuit, compatible avec toutes les plate-formes Les fichiers pour installer R sont disponibles à partir du site du CRAN (Comprehensive R Archive Network)
Avant de démarrer R est un langage interprété et pas compilé constitué de packages et de bibliothèques langage orienté objet on agit sur ces objets avec des opérateurs arithmétiques, logiques ou de comparaison, et avec des fonctions Avec R une fonction s’écrit toujours avec des parenthèses, même si elles ne contiennent rien Exemples: ls(); lm(y~x)
Génération de vecteurs La fonction c() les valeurs séparées par des virgules : exemples: v=c(1,2,3);v; [1] w=c("bleu", "vert", "rouge");w; [1] "bleu" "vert" "rouge" notes=c(francais=12,maths=15);notes; francais maths l=c(TRUE,FALSE,TRUE);l; [1] TRUE FALSE TRUE >
Génération de vecteurs La fonction c() les valeurs séparées par des virgules : exemples: v=c(1,2,3);v; [1] w=c("bleu", "vert", "rouge");w; [1] "bleu" "vert" "rouge" notes=c(francais=12,maths=15);notes; francais maths l=c(TRUE,FALSE,TRUE);l; [1] TRUE FALSE TRUE >
Fonctions spécifiques de génération de vecteur Génération de suites numériques l’opérateur : Exemple v=1:10;v; [1] seq(): génère des suites régulières rep(): duplique une suite sample():tirage aléatoire
Manipulations sur les vecteurs concaténation de vecteurs; v=c(1:3);v; [1] t=c(4,5,6);t; [1] h=c(v,t);h; [1] opérations numériques +,-,*, /, ^ Exemples: Si v1 et v2 sont deux vecteurs de même longueur, v3=v1+v2 ou v3=v1/v2 ou v3=v1^2... w=v+t; [1] opérations logiques: & :conjonction logique ET | :disjonction inclusive OU inclusif ! :négation NON xor() :disjonction exclusive, OU exclusif >, =,<=: ==,!= :test d'égalité, de différence exemples: l=(h>1)&(h<4); h[l];
Séléction d’éléments dans un vecteur Deux modes de sélection ● Utiliser les indices de position des éléments de v v= -3:2; v[3]; [1]-2 v[c(4,6)];a=c(4,6); v[a]; ● Utiliser un vecteur booléen de même longueur que v, valant TRUE aux positions des éléments à sélectionner Exemples: l=c(TRUE, TRUE, TRUE,FALSE,TRUE,FALSE); v[l]; [1] l=v>0; v[l]; [1] 1 2 l=which(v<0);l; v[l] [1] [1] [1]0 2
La fonction which() donne les positions pour lesquelles l’indicateur logique vaut TRUE. exemple: v=c(1,6,4,8,3,7); which(v>5); [1] v[which(v>5)] [1] Utilisation d’indices négatifs pour dé-selectionner exemple > w=v[-4] ;w; [1] > t=v[-v<7];t [1]
Compléments sur les vecteurs A chaque mode (Numériques,caractères, logiques, facteurs)correspond ses opérateurs. Par exemple on ne peut pas additionner des vecteurs caractères. Remarque: si v est un vecteur numérique v+2: ajoute 2 à tous les éléments de v v+w :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 exemple:v=c(5,7,3,9); e=2:3; v^e; [1]
Fonctions spécifiques de génération de vecteur Génération de suites numériques l’opérateur : Exemple v=1:10;v; [1] seq(): génère des suites régulières rep(): duplique une suite sample():tirage aléatoire
Manipulations sur les vecteurs concaténation de vecteurs; v=c(1:3);v; [1] t=c(4,5,6);t; [1] h=c(v,t);h; [1] opérations numériques +,-,*, /, ^ Exemples: Si v1 et v2 sont deux vecteurs de même longueur, v3=v1+v2 ou v3=v1/v2 ou v3=v1^2... w=v+t; [1] opérations logiques: & :conjonction logique ET | :disjonction inclusive OU inclusif ! :négation NON xor() :disjonction exclusive, OU exclusif >, =,<=: ==,!= :test d'égalité, de différence exemples: l=(h>1)&(h<4); h[l];
Séléction d’éléments dans un vecteur Deux modes de sélection ● Utiliser les indices de position des éléments de v v= -3:2; v[3]; [1]-2 v[c(4,6)];a=c(4,6); v[a]; ● Utiliser un vecteur booléen de même longueur que v, valant TRUE aux positions des éléments à sélectionner Exemples: l=c(TRUE, TRUE, TRUE,FALSE,TRUE,FALSE); v[l]; [1] l=v>0; v[l]; [1] 1 2 l=which(v<0);l; v[l] [1] [1] [1]0 2
La fonction which() donne les positions pour lesquelles l’indicateur logique vaut TRUE. exemple: v=c(1,6,4,8,3,7); which(v>5); [1] v[which(v>5)] [1] Utilisation d’indices négatifs pour dé-selectionner exemple > w=v[-4] ;w; [1] > t=v[-v<7];t [1]
Les objets Un objet est un espace dans lequel on peut stocker tout ce qui nous interesse Exemples Un vecteur est un objet d'un même mode pour toutes les valeurs qui le constituent: vecteur numérique, de caractères...Ces valeurs sont appelées coordonnées, ou éléments Une matrice est aussi un objet homogène, qui peut avoir plusieurs colonnes. Toutes les lignes de la matrice sont de même taille, toutes les colonnes aussi Une liste est un objet permettant de stocker des objets hétérogènes Un tableau de données ou (data.frame), est une liste dont les objets sont de même longueur mais pas nécessairement de même mode Un facteur est un vecteur particulier adapté aux variables qualitatives
Les objets (suite) Les objets se caractérisent par: Un nom, commençant par une lettre, comportant lettres chiffres, espaces soulignés, points. Une classe: vecteur, matrice (tableau à 2 dimensions), array (tableau à n dimensions), data frame.... Un mode: numérique(nombre réel), caractère (chaine de caractères à mettre entre guillemets),logique (booléen), NULL (objet vide),liste (liste d'objets),fonction... Une taille, la taille d'un objet est le nombre d'éléments qu'il contient
suite… 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, Une valeur de mode caractère est représentée entre guillemets doubles
Les fonctions Les fonctions sont des objets particuliers Les fonctions disponibles sont classées dans des bibliothèque (= packages) Le package nommé base est le coeur de R et contient -les fonctions de base pour la lecture et la manipulation des données -un grand nombre de fonctions graphiques et statistiques (modèles linéaires, analyse de variance...)
Les fonctions sont reconnaissables à leurs parenthèses, elles ont des arguments facultatifs ou obligatoires, séparés par des virgules, par ex plot(x,y,col= « blue ») Les arguments d'une fonction: args() L’aide en ligne: help(lm) ou help(« lm ») ou ?lm() ouvre une page sur le modèle suivant:
L’aide en ligne Exemples: help(lm) ou help(« lm ») ou ?lm() ouvre une page sur le modèle suivant:
lm package:stats R Documentation Fitting Linear Models Description:...'lm' is used to fit linear models..... Usage:lm(formula, data, subset, weights, na.action, method = "qr", model = TRUE, x = FALSE, y = FALSE, qr = TRUE,singular.ok = TRUE, contrasts = NULL, offset,...) Arguments: formula:... data:... subset:... weights:.... Value: 'lm' returns an object of 'class'.... Author(s): References: See Also: Examples:
Dans les salles de tp Sous windows: Cliquer sur R (situé dans l'onglet graphisme) Sous linux Ouvrir un terminal, puis taper R pour lancer R et Ouvrir un éditer de texte
Lancement de R, les menus(sous windows)
La barre de menus de l’éditeur Ouvrir un script Enregistrer un script Soumettre une ligne de code Passer d’un fenêtre à l’autre imprimer
C(),objects(), ls() sont des fonctions
La barre de menus de RGui Ouvrir un script Charger une image Sauvegarder une image Copier coller Arrêter le calcul en cours imprimer
Pour débuter Pour créer un objet on utilise l’opérateur d'affectation: <- ou _ ou = Exemples: n=5 M<-c(1,2,3) k_c(T,F) Il faut respecter la casse: n est différent de N Voir l’ensemble des objets créés: objects() tous les objets ls(pat=”n“) objets dont le nom commence par la lettre n Eliminer des objets rm() remove() ex: rm(n,M,k)
Exemples: Si v1 et v2 sont deux vecteurs de même longueur, v=v1+v2 V=v1/v2 V=v1^2 V=v1>v2 paste( ): colle des vecteurs terme à terme après avoir transformé en chaine de caractères: exemple: paste(c(0,1,2),c(a,b,c)); “0a” “1b” “2c length(v) donne la longueur de v
Séléction d’éléments dans un vecteur Deux modes de sélection ● Utiliser les indices de position des éléments de v Exemple: v= -3:2; v[3];v[c(4,6)] ;a=c(4,6); v[a]; ● Utiliser un vecteur booléen de même longueur que v, valant TRUE aux positions des éléments à sélectionner Exemple: 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 Utilisation d’indices négatifs pour dé-selectionner exemple w=v[-4] ;w; [ 1] 1 2 3
Opérations sur les vecteurs Numériques, alphanumériques, logiques, facteurs A chaque mode correspond ses opérateurs. Par exemple on ne peut pas additionner des vecteurs alphanumériques. Par contre on peut, si v est un vecteur numérique, définir le vecteur v+2: ajoute 2 à tous les éléments de v v+w : addition terme à terme des deux vecteurs v et 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
Conversion d ’objets On peut tester ou modifier 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 Sur le même modèle, as.factor(),is.factor(),as.logical(),is.lo gical()…
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 ”
Un vecteur comme représentation d’une série statistique simple Soit x=c(x1,…,xn) On peut calculer la moyenne Moy=sum(x)/lenght(x) ou mean(x) La variance Vax par sum((x_mean(x))^2)/lenght(x) L’écart-type par Etx=sqrt(Vax)
Pour une série statistique pondérée… La moyenne, par exemple, si x=c(x1,x2,…,xn) est pondérée par p=c(p1,p2,…pn), on peut poser Xp=p*x; Xxp=p*(x^2) Et grace à ces vecteurs on peut calculer la moyenne des xi (x=1/n i pixi) Ou la variance des xi (=1/n i pi(xi- x) 2 ) Par la fomule de Koenig
de même pour le moment centré d’ordre k (=1/n i pi(xi- x) k ) On peut…
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;
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
En résumé, Les objets se caractérisent par: Une classe: vecteur, matrice (tableau à 2 dimensions), array (tableau à n dimensions), un data frame.... fonction class() Un mode: numérique(nombre réel), caractère (chaine de caractères à mettre entre guillemets),logique (booléen), NULL (objet vide),liste (liste d'objets),fonction... fonction mode() Une taille, la taille d'un objet est le nombre d'éléments qu'il contient fonction length(), dim()
Aides au démarrage q() pour quitter touche Esc pour interrompre flèches vers le haut pour rappeler les nouvelles commandes plusieurs commandes sur la même ligne séparées par des ; pour voir le contenu d ’un objet, taper son nom mots réservés: NA, letters Scripts: Pour les exécuter:source(" a:\\monprog.R ") Pour mettre une ligne en commentaire: # Pour afficher des valeurs: print() dans le script ou le nom de la valeur dans R
➢ Sous linux, ouvrir un terminal e entrer la commande R ➢ Ouvrir un éditeur de textes ➢ On pourra commencer par ➢ demo(graphics) ➢ demo(persp)
Pour sauvegarder des graphiques Il faut: Choisir un format d'exportation (png, eps,pdf... Encadrer les commandes graphiques par un appel à pdf() et dev.off() (dans le cas d'un graphique sauvegardé au format pdf) Pour plus d'informations, ?Devices