Vecteurs Matrices listes data frames

Slides:



Advertisements
Présentations similaires
Introduction à la notion de fonction 1. Organisation et gestion de données, fonctions 1.1. Notion de fonction ● Déterminer l'image d'un nombre par une.
Advertisements

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.
Cours 2 Vecteurs, matrices,listes,séries temporelles, data frames.
Génération de matrices matrix() Ce sont des vecteurs qui possèdent un argument supplémentaire, qui est lui-même un vecteur de longueur 2, sa dimension,
Cours 2 Vecteurs Matrices. 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.
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.
Cours 1 Installer R Premiers Pas. Avant de démarrer – R est un langage interprété et pas compilé constitué de packages et de bibliothèques – langage orienté.
Cours 3 statistiques avec R. Lois de probabilité, distributions On peut évaluer les quantités suivantes: Fonctions de répartition Densité Quantiles Simulations.
Guide de l'enseignant SolidWorks, leçon 1 Nom de l'établissement Nom de l'enseignant Date.
Cours 1 Généralités. 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.
Cours 1 Installer R Premiers Pas. Avant de démarrer – R est un langage interprété et pas compilé constitué de packages et de bibliothèques – langage orienté.
Cours 4 data frames. Modes ouiNumérique, caractère, complexe logique Liste list ouiNumérique,caractère,complexe logiqueSérie temporelle ts OuiNumérique,caractère,complexe.
Matrices. Génération de matrices matrix() Ce sont des vecteurs qui possèdent un argument supplémentaire, qui est lui-même un vecteur de longueur 2, sa.
Cours 2 Vecteurs, matrices,listes,séries temporelles, data frames.
Dr. Tarek Barhoumi statistiques descriptives Statistiques descriptives Dr. Tarek Barhoumi.
Cours 08 SYSTÈME DE FICHIERS
annuités, mensualités remboursements constants VPM pendant une période ininterrompue
Application des lois de probabilité -Variable aléatoire discrète-
Listes,dataframes séries temporelles
LES TABLEAUX EN JAVA.
Session 1 6 mars 2017 Plateforme ICONICS Justine Guégan
Les Tableaux Mme DJEBOURI. D.
Lois fondamentales de l'algèbre de Boole
Algorithmique demander jeu du pendu.
Reprise du cours ( ) Aujourd’hui :
Représentation de l'information en binaire:
Session 1 31 mai 2017 Plateforme ICONICS Justine Guégan
Fonctions.
Session 2 1er juin 2017 Plateforme ICONICS Justine Guégan
Principes de programmation (suite)
Plans d’expériences: Plans factoriels
Vecteurs Matrices listes data frames
Cyber-Sphinx Séance 2.
Codification et Représentation de l’information
Création d’un formulaire
Week 1 Lecture 1 Introduction à R L3PRO 2017.
Stabilité des porteurs horizontaux (Poutres)
Création Et Modification De La Structure De La Base De Données
1.2 dénombrement cours 2.
3- Nouvelles pages d’accueil
Cours N°10: Algorithmiques Tableaux - Matrices
Package R Markdown: Un outil pour générer des pages html avec R Studio
Méthodologie scientifique
Chapitre 3 : Caractéristiques de tendance centrale
Programmation Android Première application Android
L1 Technique informatique
NUMERATION et REPRESENTATION DES NOMBRES
B.Shishedjiev - Informatique
Lois de Probabilité Discrètes
Lois de Probabilité Discrètes
Question flash TSTI2D.
Programme financé par l’Union européenne
Programme d’appui à la gestion publique et aux statistiques
Langages de programmation TP11
03- Evaluation Access 2003 Cette évaluation comporte des QCM (1 seule réponse) et des Zones à déterminer dans des copies d’écran.
Présentation 4 : Sondage stratifié
Présentation 9 : Calcul de précision des estimateurs complexes
Chapitre 3: Les scriptes
Reconnaissance de formes: lettres/chiffres
1°) Un nombre y est-il associé à 3, et si oui lequel ?
Logiciel de présentation
Elles contiennent des informations autre que géométriques
Présentation 6 : Sondage à plusieurs degrés
Session 2 9 mars 2017 Plateforme ICONICS Justine Guégan
Tableaux croisés dynamiques sous Excel: des outils simples pour une analyse rapide de jeux de données en cytométrie Camille SANTA MARIA Ingénieur d’étude.
LE TORSEUR STATIQUE 1) Définition 2) Notation 3) Deux cas particuliers
Statistiques et probabilités
Python Nicolas THIBAULT
PROGRAMMATION SOUS R. PRESENTE PAR : ACHETTOU ISMAIL LAARICH TARIQ ENCADRE PAR : Pr. EXPOSÉ SUR LA PROGRAMMATION SUR R 2.
spécialité mathématiques Première
Transcription de la présentation:

Vecteurs Matrices listes data frames 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,!,>,<,>=,<=,==,!=)

Si v1 et v2 sont deux vecteurs de même longueur, v3=v1+v2 V3=v1/v2 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() 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

“Dé-sélectionner” un élément dans un vecteur Utilisation d’indices négatifs pour dé-selectionner Exemple: w=c(1:4);w; [ 1] 1 2 3 4 v=w[-4] ;v; [ 1] 1 2 3

La fonction rep() rep(x, times) x=1:4;y=rep(x,2);y 12341234 Avec l’argument each z=rep(x,each=2);z; 11223344 w=rep(x,c(1,2,1,2)); w ; 122344

La fonction seq() crée une suite régulière Arguments principaux: from, to, by, lenght Exemples: x=seq(17); x; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 y=seq(from=3,to=8);y; 3 4 5 6 7 8 y=seq(3,8);y;

La fonction seq() suite Argument by z=seq(from=3,to=8,by=0.5);z; 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 Argument lenght t=seq(0,1,lenght=11);t; 0 0.1 0.2 0.3 .4 0.5 0.6 0.7 0.8 0.9 1

Exemple d’utilisation de seq() x=seq(-3,3,by=0.05); y=exp(x); plot(x,y); > x [1] -3.00 -2.95 -2.90 -2.85 -2.80 -2.75 -2.70 -2.65 -2.60 -2.55 -2.50 -2.45 [13] -2.40 -2.35 -2.30 -2.25 -2.20 -2.15 -2.10 -2.05 -2.00 -1.95 -1.90 -1.85 [25] -1.80 -1.75 -1.70 -1.65 -1.60 -1.55 -1.50 -1.45 -1.40 -1.35 -1.30 -1.25 … 3.00

> y [1] 0.04978707 0.05233971 0.05502322 0.05784432 0.06081006 0.06392786 [7] 0.06720551 0.07065121 0.07427358 0.07808167 0.08208500 0.08629359 [13] 0.09071795 0.09536916 0.10025884 0.10539922 0.11080316 0.11648416 [19] 0.12245643 0.12873490 0.13533528 0.14227407 0.14956862 0.15723717 [25] 0.16529889 0.17377394 0.18268352 … [121] 20.08553692

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 ipixi) par m=sum(A) Ou la variance des xi (formule ipi(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] 12 8 11 10 9 4 2 14 1 5

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] 3 5 0 2 3 1 3 5 4 6 rbinom(100,10,0.3) [1] 4 3 5 2 3 4 4 4 0 0 2 2 4 4 1 4 3 2 4 3 4 3 2 3 1 3 5 3 3 4 4 2 2 1 3 5 3 5 2 5 5 1 6 2 3 4 3 2 2 4 2 1 1 4 4 3 2 2 3 2 1 2 5 6 5 2 3 3 4 2 3 4 4 3 1 3 3 4 6 1 2 6 4 1 2 7 3 4 3 4 3 5 2 1 1 4 2 4 3 1

la loi de Poisson P(l):rpois() (rappel: p(X=k)=e^{-l} l^k/k!) exemple: b=rpois(10, 5);b [1] 7 5 5 6 4 7 4 6 3 6 la loi géométrique g(p): rgeom() (rappel:p(X=k) = p (1-p)^k ) c=rgeom(10,0.25); c; [1] 1 2 0 0 3 2 1 2 1 0

La loi normale N(m,s): 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]209.38 186.99 167.24 168.71 184.49 175.63 162.25 177.86 183.27 181.68 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 Spi=1. v4=sample(1:5,3,prob=c(0.1,0.2,0.1,0.5,0.1))

Tableau Comparatif oui Numérique, caractère, complexe logique Liste list Numérique,caractère,complexe logique Série temporelle ts Oui Data.frame Non Matrice matrix Tableau array Numérique,caractère Facteur factor Vecteur vector Plusieurs modes Modes possibles

Matrices

Génération de matrices matrix() Ce sont des vecteurs qui possèdent un argument supplémentaire, qui est lui-même un vecteur de longueur 2, sa dimension, et qui définit le nombre de lignes et de colonnes M=matrix(data=NA,nrow=1,ncol=1,byrow=FALSE,) exemple:M=matrix(5:16,3,4,byrow=TRUE) Sélection dans une matrice,sous-matrices M[1,2],M[c(2,3),c(3,4)] M[i,],M[,j]: sélection d’une ligne ou d’une colonne, on obtient un vecteur M[c(1,5,4),]: sélection de plusieurs lignes (1,5 et 4), on obtient une nouvelle matrice Dimension d’une matrice: dim(): renvoie la dimension de la matrice. On peut aussi imposer cette dimension

Sélection dans une matrice exemple: v=1:12; M=matrix(v);dim(M)=c(3,4);M; [,1] [,2] [,3] [,4] [1,] 1 4 7 10 [2,] 2 5 8 11 [3,] 3 6 9 12 Indice linéaire (par colonne) M[v],M[-v] exemple:M[-3] donne la matrice privée de son troisième élément, soit le vecteur... M[M[,1]>0,]:sélectionne la sous matrice pour laquelle les valeurs dans la première colonne sont positives, soit...

Opérations sur les matrices Les opérateurs habituels fonctionnent élément par élément Le produit matriciel algébrique:%*% t():transposition diag(): si v est un vecteur, diag(v)crée une matrice diagonale ayant v sur la diagonale si M est une matrice, diag(M) extrait la diagonale de M sum():si v est un vecteur ou une matrice, sum(v) calcule la somme de tous les éléments de v sum(v,na.rm=TRUE):somme sans tenir compte des NA

Opérations sur les matrices (suite) det(): déterminant d ’une matrice carrée solve():inverse d ’une matrice , ou résolution d ’un système d ’équations linéaire eigen(): calcul des valeurs propres et vecteurs propres

Opérations sur les matrices: la fonction apply() apply(M,margin,fun,…):applique à M la fonction fun (ou un opérateur, mais qui doit alors être mis entre guillemets),margin indique si l’action doit être appliquée sur les lignes ( margin=1), les colonnes ( margin=2) exemples: apply(M,1,sum):le résultat est une colonne formée des sommes des lignes de la matrice apply(M,2,sum):pareil pour les colonnes

Listes, series temporelles

Les listes Création de listes: avec la fonction list() Il n’y a aucune contrainte sur les objets qui y sont inclus Exemple: x=1:10;y= letters ; L=list(x,y); crée une liste sans nom L=list(chiffres=0:9,lettres=letters);L $chiffres [1] 0 1 2 3 4 5 6 7 8 9 $lettres [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z" Les deux champs sont accessibles par L$chiffres; L$lettres;

Les listes Création de listes: avec la fonction list() Il n’y a aucune contrainte sur les objets qui y sont inclus Exemple: x=1:10;y= letters ; L=list(x,y); crée une liste sans nom L=list(chiffres=0:9,lettres=letters);L $chiffres [1] 0 1 2 3 4 5 6 7 8 9 $lettres [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z" Les deux champs sont accessibles par L$chiffres; L$lettres;

Les listes (exemple) On trouve souvent des listes comme résultat d'une commande R exemple:lm() est une fonction retournant pour un modèle linéaire une liste contenant au moins: coefficients, résidus,valeurs estimées,rangs, poids....

Les series temporelles La fonction ts() va créer une série temporelle à partir d’un vecteur (ou d’une matrice), et des options suivantes ts(data=,start=,end=,frequency=…) data:un vecteur ou une matrice start: le temps de la première observation end:le temps de la dernière observation frequency: le nombre d’observations par unité de temps

Series 1 Series 2 Series 3 Jan 1961 7 6 8 Feb 1961 7 8 4 t=ts(matrix(rpois(36,5),12,3),start=c(1961,1), frequency=12) Series 1 Series 2 Series 3 Jan 1961 7 6 8 Feb 1961 7 8 4 Mar 1961 4 2 5 Apr 1961 3 3 4 May 1961 7 6 10 Jun 1961 4 6 6 Jul 1961 5 5 4 Aug 1961 3 3 6 Sep 1961 7 3 3 Oct 1961 4 3 7 Nov 1961 7 2 7 Dec 1961 3 4 4

plot(t)

Modes oui Numérique, caractère, complexe logique Liste list Série temporelle ts Oui Data.frame Non Matrice matrix Tableau array Numérique,caractère Facteur factor Vecteur vector Plusieurs modes Modes possibles

data frames

Les data frames (traduction: chassis, cadre) sont le « type », le format par défaut sous R, format obtenu: par la lecture de fichiers externes Et format obligatoire pour exporter des tableaux de R

D[,3], ou D[,”fac”], ou D$fac data.frame En interne ce sont des listes, dont les champs sont des colonnes En apparence ce sont des matrices, avec comme différence essentielle que les différentes colonnes peuvent être de modes distincts:alphanumériques, booléennes, facteurs… Les lignes et les colonnes sont nommées et on peut y accéder par leur indice de position ou par leur nom… exemple: L= LETTERS[1:3]; D=data.frame(x=rep(1,10),y=1:10, fac=sample(L,10,replace=TRUE)); La troisième colonne est D[,3], ou D[,”fac”], ou D$fac x y fac 1 1 1 C 2 1 2 C 3 1 3 A 4 1 4 B 5 1 5 A 6 1 6 A 7 1 7 B 8 1 8 A 9 1 9 B 10 1 10 C

Fonctions pour les data frames names(),colnames()rownames()liste des noms de ligne et de colonnes dimnames():liste ayant 2 champs: les noms de lignes et les noms de colonne dim():liste donnant les dimensions du data frame cbind():concaténation en colonne rbind():concaténation en ligne Exemple:cbind(d,salle=rep(c(1,2),5)) x y fac salle 1 1 1 B 1 2 1 2 A 2 3 1 3 B 1 4 1 4 A 2 5 1 5 C 1 6 1 6 C 2 7 1 7 B 1 8 1 8 C 2 9 1 9 B 1 10 1 10 A 2

La fonction data() : Cette fonction a deux effets distincts: elle permet de lister les data frame existants de lire des données internes et de les charger dans un data.frame Exemples: data() # liste des noms de tous les data frame dans le package par défaut appelé « datasets » D=data(USArrests) # charge le data frame USArrests et le place dans D data(package = .packages(all.available = TRUE))# Donne la liste de tous les data frames de tous les packages disponibles

Plus précis... help(USArrests) # donne des informations sur le data frame « USArrests », si elles existent try(data(package = "rpart") )# liste des data frame dans le package rpart

La fonction library() Traduction : bibliothèque Exemples: library():donne la liste des « packages » ou bibliothèques disponibles sur la version de R On peut en charger d’autres par le site du CRAN par exemple library(cluster);data(agriculture);permet de charger le data frame « agriculture » du package « cluster » data(agriculture, package=« cluster »); permet aussi de charger ce data frame D=data(agriculture, package=« cluster »); permet aussi de charger ce data frameet de le placer dans D

Importer des fichiers ... Pour les lectures et écritures dans un répertoire,R utilise le repertoire de travail. getwd():permet de connaître ce repertoire setwd():permet de modifier le repertoire de travail exemple setwd(« c:/data ») R peut lire des données stockées dans un fichier texte (ascii):read.table(), en conservant sa structure éventuelle: la sortie est un data.frame arguments de cette fonction: file= nom du fichier sep= séparateur (espace par défaut) header= booléen (=TRUE si le nom des colonnes est en tête, FALSE sinon)

Exemple: pour importer dans l'objet F les données situées dans le fichier « fichier.txt » placé à l'adresse:  « C:/ArR/fichier.txt » F=read.table(« C://ArR//fichier.txt », sep=« \t»,header=TRUE); Variantes:read.csv(), read.delim(),read.fwf()… pour des fichiers dans d ’autres formats (Excell,SAS,SPSS , bases de données SQL…) Attention: ces fonctions ne sont pas toujours dans le package de base.

et les exporter Ecriture d’un fichier write.table(file=,append=,col.names=, row.names=) arguments: file= nom du fichier, adresse d'export append= booléen si TRUE ajoute au fichier existant, si FALSE ecrase le fichier existant col.names= booléen si TRUE écrit les noms de colonnes row.names= idem pour les lignes

Sauvegarder certains objets en binaire ou en ASCII et les restaurer Fonctions: dump(): sauve en ascii des objets R source():recharge les objets sauvés par dump(),par exemple un script sauvegardé sous le nom test.R sera rappelé par source(« test.R  », echo=TRUE) save(): comme dump() mais en binaire load(): comme source() mais en binaire

Méthode En pratique, on pourra créer un répertoire de travail par analyse de données, et y déposer: les fichiers de données brutes le fichier script contenant les commandes R le workspace et les fichiers résultats(textes et graphiques)