Introduction au logiciel R



Documents pareils
Introduction à MATLAB R

Introduction à R. Florence Yerly. Dept. de mathématiques, Université de Fribourg (CH) SP 2011

Lire ; Compter ; Tester... avec R

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Limitations of the Playstation 3 for High Performance Cluster Computing

STAGE IREM 0- Premiers pas en Python

données en connaissance et en actions?

Cours 1. I- Généralités sur R II- Les fonctions de R et autres objets III-Les vecteurs

INTRODUCTION AU LOGICIEL R

R - un exemple du succès des modèles libres

Initiation à LabView : Les exemples d applications :

INTRODUCTION À L'ENVIRONNEMENT DE PROGRAMMATION STATISTIQUE R

1 Introduction - Qu est-ce que le logiciel R?

Programmation Web. Madalina Croitoru IUT Montpellier

Initiation au logiciel R

TP 1 Introduction à Matlab Février 2009

1 Complément sur la projection du nuage des individus

Les concepts de base, l organisation des données

Plan du cours. Historique du langage Nouveautés de Java 7

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Simulation de variables aléatoires

Cours 7 : Utilisation de modules sous python

Cours Informatique Master STEP

Cours d algorithmique pour la classe de 2nde

1. Structure d'un programme FORTRAN 95

Ricco Rakotomalala R.R. Université Lyon 2

Python - introduction à la programmation et calcul scientifique

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

TP 1. Prise en main du langage Python

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :


Présentation du langage et premières fonctions

Introduction aux Statistiques et à l utilisation du logiciel R

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Résolution de systèmes linéaires par des méthodes directes

Séance 0 : Linux + Octave : le compromis idéal

Définitions. Numéro à préciser. (Durée : )

Algorithmique et Programmation, IMA

Algorithmique I. Algorithmique I p.1/??

Annexe commune aux séries ES, L et S : boîtes et quantiles

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Présentation du logiciel


Logiciel XLSTAT version rue Damrémont PARIS

Statistique Descriptive Élémentaire

Gestion des données avec R

SAP BusinessObjects Web Intelligence (WebI) BI 4

1 Recherche en table par balayage

Plan du cours Cours théoriques. 29 septembre 2014

MANIPULATION ET VISUALISATION DE GROSSES BASES DE DONNÉES AVEC R

Chapitre 3. Les distributions à deux variables

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Exercices Corrigés Premières notions sur les espaces vectoriels

L ANALYSE EN COMPOSANTES PRINCIPALES (A.C.P.) Pierre-Louis GONZALEZ

Analyse exploratoire des données

Calcul différentiel sur R n Première partie

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

: seul le dossier dossier sera cherché, tous les sousdomaines

Statistiques à une variable

Optimisation Discrète

Corrigé des TD 1 à 5

INTRODUCTION AU DATA MINING

Calcul Formel et Numérique, Partie I

Traitement des données avec Microsoft EXCEL 2010

Exercice : la frontière des portefeuilles optimaux sans actif certain

Installation. Notes de Cours sur le logiciel R. Plan. Au démarrage

Catalogue des connaissances de base en mathématiques dispensées dans les gymnases, lycées et collèges romands.

Initiation à l analyse en composantes principales

Représentation d un entier en base b

Correction de l examen de la première session

La place de SAS dans l'informatique décisionnelle

AWS avancé. Surveiller votre utilisation d EC2

Fonctions de plusieurs variables

Analyse discriminante et régression logistique: application au cas de l innovation pour les entreprises du Canton du Tessin

Quatrième partie IV. Test. Test 15 février / 71

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Séries Statistiques Simples

Découverte du tableur CellSheet

Examen Médian - 1 heure 30

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Présentation du PL/SQL

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Algorithmique et programmation : les bases (VBA) Corrigé

TD3: tableaux avancées, première classe et chaînes

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Table des matières. I Mise à niveau 11. Préface

Programmes des classes préparatoires aux Grandes Ecoles

INF6304 Interfaces Intelligentes

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

as Architecture des Systèmes d Information

Théorie et codage de l information

Statistique : Résumé de cours et méthodes

Programmation linéaire

Contenu pédagogique des unités d enseignement Semestre 1(1 ère année) Domaine : Sciences et techniques et Sciences de la matière

Transcription:

Introduction au logiciel R Fabrice Rossi Projet AxIS, INRIA Rocquencourt 2007 F. Rossi (INRIA) Introduction au logiciel R 2007 1 / 34

Plan 1 Manipulations élémentaires Vecteurs et tableaux de données Graphisme 2 Structures de contrôle Exécution conditionnelle Boucles Fonctions 3 Algèbre Vecteurs Matrices F. Rossi (INRIA) Introduction au logiciel R 2007 2 / 34

Logiciel R http://www.r-project.org/ logiciel de statistique et de visualisation langage de programmation (proche de S) logiciel libre multi-plateformes (Linux, MacOS X, Windows) extensible par «plugins» F. Rossi (INRIA) Introduction au logiciel R 2007 3 / 34

Principes console interactive (lancée avec la commande R) manipulation d objets : vecteur matrices tableaux de données listes etc. liste des objets : ls() exécution d un ensemble de commande : source("script") sauvegarde des affichages : sink("sauvegarde") aide :?truc affiche l aide sur truc F. Rossi (INRIA) Introduction au logiciel R 2007 4 / 34

Vecteur objet le plus simple >x=c(1,2) >ls() [1] "x" > x [1] 1 2 > class(x) [1] "numeric" = : affectation (aussi <-) c : concaténation modifications >x[1]=3 x [1] 3 2 F. Rossi (INRIA) Introduction au logiciel R 2007 5 / 34

Tableau de données Data Frame >data(iris) >ls() [1] "iris" >class(iris) [1] "data.frame" dimensions >dim(iris) [1] 150 5 150 observations pour 5 variables chaque colonne (variable) est nommée > names(iris) [1] "Sepal.Length" "Sepal.Width" "Petal.Length" [4] "Petal.Width" "Species" F. Rossi (INRIA) Introduction au logiciel R 2007 6 / 34

Tableau de données accès au contenu > class(iris$sepal.length) [1] "numeric" > length(iris$sepal.length) [1] 150 > iris$sepal.length[10] [1] 4.9 valeur de la variable Sepal Length pour la dixième observation une observation > iris[10,] Sepal.Length Sepal.Width Petal.Length Petal.Width Species 10 4.9 3.1 1.5 0.1 setosa ou une valeur > iris[10,3] [1] 1.5 F. Rossi (INRIA) Introduction au logiciel R 2007 7 / 34

Variables nominales Factor > class(iris$species) [1] "factor" > levels(iris$species) [1] "setosa" "versicolor" "virginica" > class(levels(iris$species)) [1] "character" variable nominale à trois modalités une valeur > iris$species[2] [1] setosa Levels: setosa versicolor virginica distribution des modalités > summary(iris$species) setosa versicolor virginica 50 50 50 F. Rossi (INRIA) Introduction au logiciel R 2007 8 / 34

Statistiques Descriptives moyenne mean() et médiane median() > mean(iris$sepal.width) [1] 3.057333 > median(iris$petal.length) [1] 4.35 plusieurs variables simultanément > mean(iris[1:3]) Sepal.Length Sepal.Width Petal.Length 5.843333 3.057333 3.758000 remarque : a:b : tous les entiers entre a et b >-3:6 [1] -3-2 -1 0 1 2 3 4 5 6 écart type sd() et variance var() > sd(iris$petal.width) [1] 0.7622377 F. Rossi (INRIA) Introduction au logiciel R 2007 9 / 34

Calcul vectoriel opérateurs «terme à terme» > x=c(3,4) > y=c(-2,5) > x+y [1] 1 9 > x*y [1] -6 20 réutilisation >x-1 [1] 2 3 > z=1:3 > z [1] 1 2 3 > z-x [1] -2-2 0 Warning message: la longueur de l objet le plus long n est pas un multiple de la longueur de l objet le plus court in: z - x F. Rossi (INRIA) Introduction au logiciel R 2007 10 / 34

Calcul vectoriel et tableaux de données sous-tableau > class(iris[1]) [1] "data.frame" colonne > class(iris[[1]]) [1] "numeric" application : calcul de l écart type > sqrt(sum((iris[[1]]-mean(iris[[1]]))^2)/(length(iris[[1]])-1)) [1] 0.8280661 > sd(iris[[1]]) [1] 0.8280661 corrélation > cor(iris[1:2]) Sepal.Length Sepal.Width Sepal.Length 1.0000000-0.1175698 Sepal.Width -0.1175698 1.0000000 exercice : calcul de la corrélation F. Rossi (INRIA) Introduction au logiciel R 2007 11 / 34

Statistiques Résumé résumé d un tableau de donnée > summary(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300 Median :5.800 Median :3.000 Median :4.350 Median :1.300 Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800 Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500 Species setosa :50 versicolor:50 virginica :50 ou d une seule variable > summary(iris$petal.length) Min. 1st Qu. Median Mean 3rd Qu. Max. 1.000 1.600 4.350 3.758 5.100 6.900 F. Rossi (INRIA) Introduction au logiciel R 2007 12 / 34

Diagramme de dispersion Affichage d un tableau de données >plot(iris) Sepal.Length 2.0 2.5 3.0 3.5 4.0 0.5 1.0 1.5 2.0 2.5 4.5 5.5 6.5 7.5 2.0 3.0 4.0 Sepal.Width Petal.Length 1 3 5 7 0.5 1.5 2.5 Petal.Width 4.5 5.5 6.5 7.5 1 2 3 4 5 6 7 1.0 1.5 2.0 2.5 3.0 1.0 2.0 3.0 Species F. Rossi (INRIA) Introduction au logiciel R 2007 13 / 34

Diagramme de dispersion Deux variables seulement >plot(iris[c(3,2)]) 1 2 3 4 5 6 7 2.0 2.5 3.0 3.5 4.0 Petal.Length Sepal.Width F. Rossi (INRIA) Introduction au logiciel R 2007 14 / 34

Diagramme de dispersion Un peu de couleur >plot(iris[c(3,2)],pch=20, col=c("red","blue", "green")[unclass(iris$species)]) 1 2 3 4 5 6 7 2.0 2.5 3.0 3.5 4.0 Petal.Length Sepal.Width F. Rossi (INRIA) Introduction au logiciel R 2007 15 / 34

Indexation x[y] : contenu de x réordonné selon y > x=10:15 > x [1] 10 11 12 13 14 15 > y=c(1,3,2) > y [1] 1 3 2 > x[y] [1] 10 12 11 > x[c(4,4)] [1] 13 13 x[-y] : éléments de x dont les indices ne sont pas dans y > x[-y] [1] 13 14 15 x[t] : éléments de x pour lesquels t est TRUE > x>12 [1] FALSE FALSE FALSE TRUE TRUE TRUE > x[x>12] [1] 13 14 15 F. Rossi (INRIA) Introduction au logiciel R 2007 16 / 34

Exercices afficher seulement les classes "setosa" et "virginica" fusionner les classes l affichage en couleur "versicolor" et "virginica" dans afficher les points dont une coordonnée est à plus d un écart-type de la moyenne correspondante éléments utiles : opérateurs logiques : ou, & et comparaison à une valeur nominale : x=="setosa" ou x!="setosa" F. Rossi (INRIA) Introduction au logiciel R 2007 17 / 34

Boîte à moustaches >boxplot(iris[1:4]) 0 2 4 6 8 Sepal.Length Sepal.Width Petal.Length Petal.Width F. Rossi (INRIA) Introduction au logiciel R 2007 18 / 34

Histogramme >hist(iris$petal.length) Histogram of iris$petal.length Frequency 0 10 20 30 1 2 3 4 5 6 7 iris$petal.length F. Rossi (INRIA) Introduction au logiciel R 2007 19 / 34

Histogrammes combinaison de plusieurs graphiques >par(mfrow=c(2,2)) deux lignes et deux colonnes boucle > for(i in 1:4) { hist(iris[[i]],xlab=names(iris)[i],main="") } 0 5 10 20 30 Frequency 0 5 15 25 35 4 5 6 7 8 Sepal.Length 2.0 2.5 3.0 3.5 4.0 Sepal.Width 0 10 20 30 Frequency 0 5 10 20 30 1 2 3 4 5 6 7 Petal.Length 0.0 0.5 1.0 1.5 2.0 2.5 Petal.Width F. Rossi (INRIA) Introduction au logiciel R 2007 20 / 34

Exercice data() : donne la liste des données disponibles exercice : charger un tableau de données comprendre sa structure et son contenu F. Rossi (INRIA) Introduction au logiciel R 2007 21 / 34

Plan 1 Manipulations élémentaires Vecteurs et tableaux de données Graphisme 2 Structures de contrôle Exécution conditionnelle Boucles Fonctions 3 Algèbre Vecteurs Matrices F. Rossi (INRIA) Introduction au logiciel R 2007 22 / 34

Exécution conditionnelle if >x=c(1,3) >if(x[1]<x[2]) print(x[2]) [1] 3 if else >x=c(1,3) >if(x[1]>x[2]) print(x[2]) else print(x[1]) [1] 1 ifelse > x=1:4 > x [1] 1 2 3 4 > y=5:8 > y [1] 5 6 7 8 > t=c(t,t,f,t) > t [1] TRUE TRUE FALSE TRUE > ifelse(t,x,y) [1] 1 2 7 4 F. Rossi (INRIA) Introduction au logiciel R 2007 23 / 34

Boucles for > for(i in 1:4) { print(i) } [1] 1 [1] 2 [1] 3 [1] 4 > for(u in c(3,-2,5)) { print(u) } [1] 3 [1] -2 [1] 5 > for(species in levels(iris$species)) { print(paste(species,sum(iris$species==species))) } [1] "setosa 50" [1] "versicolor 50" [1] "virginica 50" F. Rossi (INRIA) Introduction au logiciel R 2007 24 / 34

Boucles while > i=10 > while(i<15) { print(i) ; i=i+1} [1] 10 [1] 11 [1] 12 [1] 13 [1] 14 repeat > i=15 > repeat { print(i) ; i=i%/%2 ; if (i<=0) break } [1] 15 [1] 7 [1] 3 [1] 1 F. Rossi (INRIA) Introduction au logiciel R 2007 25 / 34

Exercices calculer la somme du contenu d un tableau par une boucle calculer l élément le plus petit d un tableau par une boucle programmer l équivalent de ifelse grâce à une boucle F. Rossi (INRIA) Introduction au logiciel R 2007 26 / 34

Fonctions les fonctions sont des objets > f=function(x) { x^2} > class(f) [1] "function" > f(2) [1] 4 paramètres nommés (pas de type) > g=function(a,b) { a+b } > g(1,2) [1] 3 > g(1:2,3:4) [1] 4 6 le résultat est la dernière valeur calculée > h=function(a) { 2*a ; a-1} > h(1:2) [1] 0 1 F. Rossi (INRIA) Introduction au logiciel R 2007 27 / 34

Plan 1 Manipulations élémentaires Vecteurs et tableaux de données Graphisme 2 Structures de contrôle Exécution conditionnelle Boucles Fonctions 3 Algèbre Vecteurs Matrices F. Rossi (INRIA) Introduction au logiciel R 2007 28 / 34

Calcul vectoriel combinaison linéaire > x=1:3 > y=c(-1,2,4) > x+0.5*y [1] 0.5 3.0 5.0 produit scalaire : > z=x%*%y > z [,1] [1,] 15 > class(z) [1] "matrix" > dim(z) [1] 1 1 >sum(x*y) [1] 15 norme : > sqrt(sum(x^2)) [1] 3.741657 F. Rossi (INRIA) Introduction au logiciel R 2007 29 / 34

Matrices création > A=matrix(1:6,ncol=2,nrow=3) > A [,1] [,2] [1,] 1 4 [2,] 2 5 [3,] 3 6 le stockage se fait colonne par colonne informations > class(a) [1] "matrix" > dim(a) [1] 3 2 accès au contenu > A[1,] [1] 1 4 > A[1,2] [1] 4 > A[1,] [1] 1 4 > A[,2] [1] 4 5 6 indexation similaire à celle des tableaux F. Rossi (INRIA) Introduction au logiciel R 2007 30 / 34

Calcul matriciel combinaison linéaire > 2*A [,1] [,2] [1,] 2 8 [2,] 4 10 [3,] 6 12 produit > u=c(-1,0.5) > A%*%u [,1] [1,] 1.0 [2,] 0.5 [3,] 0.0 attention aux opérations «terme à terme» > A*A [,1] [,2] [1,] 1 16 [2,] 4 25 [3,] 9 36 F. Rossi (INRIA) Introduction au logiciel R 2007 31 / 34

Calcul matriciel transposition > t(a) [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 résolution d un système > B=A[1:2,1:2] > B [,1] [,2] [1,] 1 4 [2,] 2 5 > v=solve(b,u) > v [1] 2.3333333-0.8333333 > B%*%v [,1] [1,] -1.0 [2,] 0.5 F. Rossi (INRIA) Introduction au logiciel R 2007 32 / 34

Matrices et tableaux de données as.matrix(t) transforme un tableau de données T en une matrice délicat en raison du type des variables > M=as.matrix(iris) > dim(m) [1] 150 5 > class(m) [1] "matrix" > M[1,] Sepal.Length Sepal.Width Petal.Length Petal.Width Species "5.1" "3.5" "1.4" "0.2" "setosa" > class(m[1,]) [1] "character" la conversion est uniforme : ici en texte solution possible : bloc par bloc > M=as.matrix(iris[1:4]) > M[1,] Sepal.Length Sepal.Width Petal.Length Petal.Width 5.1 3.5 1.4 0.2 > class(m[1,]) [1] "numeric" F. Rossi (INRIA) Introduction au logiciel R 2007 33 / 34

Exercices Toujours écrire la solution sous forme d une ou plusieurs fonctions programmer une régression linéaire simple programmer l algorithme du perceptron programmer une régression linéaire pour plusieurs variables explicatives en utilisant le fait qu une solution de s obtient en R par > X.qr=qr(X) > u=qr.coeff(x.qr,v) X T Xu = Xv F. Rossi (INRIA) Introduction au logiciel R 2007 34 / 34