UMR 7619 Sisyphe 17-19 Avril 2012 Alexandre Pryet Le langage une introduction pragmatique Prise en main, objets et commandes de base.

Slides:



Advertisements
Présentations similaires
Introduction au Langage C,C++
Advertisements

Introduction au langage C
Le langage C++ Les types structurés
Le langage Z Pr ZEGOUR DJAMEL EDDINE
Vocabulaire pour la passage du modèle conceptuel des données au modèle relationnel des données. MCDMRD EntitéTable PropriétésChamps, attribut IdentifiantClé
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
12 mars 2001 Formats daffichage & présentations des données Cédric Dumas (Ecoles des Mines de Nantes) Patricia Plénacoste (Université de Lille I)
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
Lycée Louis Vincent SEANCE 6 Python Les listes Lundi 25 novembre 2013.
CPI/BTS 2 Programmation Web Introduction au PHP
CODES.
Expressions et assignations
LE LANGAGE SQL Langage de manipulation de données (LMD)
Les éléments de base de l’algorithmique
Outils de Programmation
Principes de programmation (suite)
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
Base de programmation Script unity en c#.
Bases de la programmation en C++ 1 Les enchaînementsdinstruction Séquentiels. Exécutions dinstructions les unes à la suite des autres. Instructions séparées.
Structures de données IFT Abder Alikacem La classe string Département dinformatique et de génie logiciel Édition Septembre 2009 Département dinformatique.
Sixième cours Les chaînes de caractères et le passage de paramètres par référence Passage de paramètres par référence String.h.
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
Cours N°2 Base de Données & Langage SQL
IFT 6800 Atelier en Technologies d’information
1 Fonction : surcharge de sélection La surcharge de sélection consiste à implanter plusieurs méthodes de même nom dans une même classe à condition que.
Standard Template Library
C++ : fonctions et opérateurs
L3 Module Libre Année universitaire Initiation à la Bioinformatique Jean-Michel RICHER.
Les chaînes de caractères
Plan cours La notion de pointeur et d’adresse mémoire.
Structures alternative et répétitive
Types de données fondamentaux
Faculté Polytechnique de Mons
L’essentiel du langage C
1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX.
Animateur : Med HAIJOUBI
LANGAGE PASCAL Introduction rapide….
Le langage C Rappel Pointeurs & Allocation de mémoire.
Shell Equipe ID Bioinformatics Training Course June 2014.
Labo II : Tableaux et pointeurs
2.3 La petite caisse La petite caisse sert à acquitter les charges dont le montant n’est pas élevé et qui doivent être payées comptant.
3 Les instructions. Cours 32 Plan du cours 3 Instruction Bloc Portée L’alternative Affectations =, +=, *=… Comment comparer –Comparer des réels –Comparer.
SIF-1053 Architecture des ordinateurs
ALGORITHMIQUE ET PROGRAMMATION C
UMR 7619 Sisyphe Avril 2012 Alexandre Pryet Le langage une introduction pragmatique Les graphiques.
une introduction pragmatique
Objectifs Créer, mettre en forme et manipuler une feuille de calcul
Autres éléments du langage
 Syntaxe du langage PHP
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
L’analyse lexicale Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Méthodes et outils de conception Introduction à la programmation Paramètre de retour Appel d’une fonction Portée des variables Définition Pourquoi les.
Sélection de colonnes (la projection)
UMR 7619 Sisyphe Avril 2012 Alexandre Pryet Le langage une introduction pragmatique Cacul itératif.
UMR 7619 Sisyphe Avril 2012 Alexandre Pryet Le langage une introduction pragmatique.
1 Système d’exploitation Les scripts csh 1 ère Année Année Tienté HSU.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 2 – Java Premiers pas Master 1 SIGLIS1 Java Lecteur - Chapitre 2 - Java Premiers Pas.
Ecrire 10 fois "Bonjour" sur 10 lignes différentes
Module 133 Développer des applications Web Introduction à PHP.
PRO-1027 Programmation Scientifique en C
Philippe Gandy - 1 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
22 Concepts de base du langage Java. 2-2 Objectifs A la fin de ce cours, vous serez capables de : Identifier les éléments essentiels de Java Identifier.
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
A la découverte d’Excel Certificat Informatique et Internet.
Le langage SQL LA Plan 1. Introduction Rappels sur le modèle relationnel Les caractéristiques du langage SQL 2. Le Langage d'Interrogation des.
LES CLASSES ET LES OBJETS
Langage de manipulation de données (LMD)
Transcription de la présentation:

UMR 7619 Sisyphe Avril 2012 Alexandre Pryet Le langage une introduction pragmatique Prise en main, objets et commandes de base

Introduction au langage et à la syntaxe Arithmétique : + - * / ^ (puissance) Assignation : a <- 3 (ou a = 3, déconseillé) Logique : > = == (égal) != (différent) & (et) | (ou) ! (non) xor (ou exclusif) Conventions et opérations de base

Conventions pour les noms Conventions pour les noms de variables et fonctions : Jamais d’accents, ni d’espaces pas de caractères spéciaux : mais «. » si variables : minuscules, séparation par des «. » ex : volume_max, height.v1, pressure fonctions : majuscules ex : MyPlot(),AnalyseData() Les chaînes de caractères sont doivent toujours être entourées de " " Sinon, R cherche la variable… Exemple : a<- "string" ≠ a <- string

Les objets de base Objet = structure de donnée : Les données contenues dans les objets peuvent être de différents types : logical, integer, double, character Rq : souvent, la gestion des types est automatique sous R. ObjetDescription vector série de donnée factor série de données avec valeurs discretes list association d’objets divers array matrice de donnée de même type data.frame matrice de donnée de différent types connaître la structure de l’objet : str(nom_objet) connaître le type de donnée : typeof(nom_objet)

Les commandes de base FonctionDescription c(1,2,3) « concaténation », création un vecteur range() connnaître le min. et le max. d’un vecteur mean() moyenne arithmétique d’un vecteur plot(x,y) faire un graphique de x et y ?plot avoir de l’aide sur la fonction plot rm() supprimer une variable ls() faire la liste des objets dans l’espace de travail quit() quitter le logiciel Une commande est une fonction appelée avec des paramètres : nom_fonction ( paramètre1, paramètre2, …)

Calculatrice R : vos premiers pas avec R ! # calculs de base (ceci est un commentaire) a <- 5^(1/3) + sqrt(2)*2 b <- sin(pi/3)/2 # quelques tests a<-5^(1/2) ; b<-sqrt(5) a == b # visualiser, supprimer les données de l’espace de travail ls() rm(list=ls()) ls() # Ctrl-l pour nettoyer nettoyer la console # seq (start,end,step) génère une séquence a<-seq(1,4,0.1) b<-sqrt(a) # faire le graphique plot(a,b)

A l’aide !!! A tout moment, vous pouvez demander de l’aide depuis R: ?nom_fonction Chercher les fonctions par mot-clé dans l’aide R: ??mot_clé Si cela ne porte pas ces fruits, recherche R mon problème Nombreux forums d’utilisateurs Si pas de résultats probants, essayer en anglais

Générer des séquences (très utile ! ) Répliquer une valeur rep(val,n) : réplique val n fois > rep(2.5,5) [1] Séquence simple avec incrément de 1 min:max > 1:10 [1] Séquence de min à max avec incrément de step seq(min,max,step) > seq(2,10,2) [1] Séquence de min à max avec n éléments seq(from,to,length.out=l) > seq(2,10,length.out=6) [1]

Les tableau de données : « data frame » Un tableau de données est une structure contenant un ensemble de vecteurs de différents types, avec le même nombre d’éléments. Chaque colonne est caractériséè par un nom et un type de donnée > str(clim) 'data.frame':14682 obs. of 8 variables: $ RECORD : int $ SolRad : num … $ WindDir : num $ Temp : num $ RH : num $ Rain : num

Les tableau de données : importer, et décrire Importer les données read.csv(file.choose())-> clim Connaître la dimension dim(clim) dim(clim)[1] # nombre de ligne dim(clim)[2] # nombre de colonnes Décrire la structure str(clim) Editer et visualiser tableau de données (pas trop gros) edit(clim)

Les tableau de données : sélection de lignes et colonnes (1) clim[ 1:10, c(1,4,5)] Sélection des dix premières lignesSélection des colonnes 1, 4, et 5 Forme générale, sélection de multiples lignes et colonnes Note : Si un paramètre est laissé vide dans les [ -], alors toutes les lignes (resp. colonnes) sont considérées. Exemple : clim[, c(2,3) ] ou clim[ 1:10, ]

Les tableau de données : sélection de lignes et colonnes (2) Sélection de plusieurs colonnes : par numéro : clim[,c(1,2,5)]->clim_ss par nom : clim[, c("Temp","RH")]->clim_ss Note : Dans ce cas, la «, » n’est pas obligatoire. Lorsqu’il y a un seul paramètre entre les [], il s’agit de la sélection de colonne. Sélection d’une colonne, par son nom clim$Temp ou clim[,"Temp"]

Les tableau de données : sélection de lignes et colonnes (3) Sélections complexes : Définition d’un index à partir d’une condition: idx <- clim$Temp < 20 Sélection des lignes satisfaisant la condition: clim[idx, c("Temp","Solrad","WindDir")]

Les tableau de données : tri des données Le tri des données est souvent inutile, mais on peut le faire ! Le tri se base sur un index, puis une sélection avec [ ] # création de l’index (ici, la température) idx<-order(clim$Temp) # tri selon l’index clim.ordered<-clim[idx,]

Les tableau de données : modifier la structure Créer une nouvelle colonne : clim$tempK<-clim$temp Supprimer une colonne clim$TempK<-NULL Renommer une colonne names(clim)[9]<-temp.kelvin Joindre les lignes de deux tableaux à la suite rbind(clim1,clim2) Joindre les colonnes deux tableaux avec le même nombre de lignes cbind(clim1,clim2) Joindre des tableaux de données avec une colonne en commun merge(tab1, tab2, by="nom_colonne")

Quelques élements sur la gestion des dates Dans un fichier texte, les dates sont enregistrées en format chaîne de caractères. ex: " :00" ; "17/04/12" ; "17 avril 2012" Pour utiliser les fonctions de gestion de dates de R, il faut convertir les dates dans un format spécial : POSIXct : " :00:00" clim$date<-as.POSIXct(clim$TIMESTAMP) Par exemple, si la date est dans le format "04/17/12 10:23:00 AM" : as.POSIXct( as.character(clim$STRPTIME), format="%m/%d/%y %I:%M:%S %p" ) Si la chaîne de caractère est dans le format standard, tout va bien. Sinon, il faut détailler explicitement le format. Cf. ?strptime

Quelques élements sur la gestion des dates Connaître l’intervalle de temps couvert par un vecteur de date range(clim$date) Générer une séquence de date start.obs<-as.POSIXct(" :00") end.obs<-as.POSIXct(" :00") seq(start.obs,end.obs,3600) Calculer la durée entre deux dates end.obs - start.obs Modifier une date (unité par défaut = secondes ) start.obs <- start.obs

Les tableau de données : exercice 1 Importer le fichier de données clim_data.csv Décrire sa structure, quelles sont les noms et types des colonnes, combien de lignes et de colonnes ? Supprimer les colonnes WindSpeed et WindDir Convertir les dates en format POSIXct Quel est l’intervalle de temps où les données sont disponibles ? Quelle est la moyenne de la température, et la somme des pluies sur cette période ? read.csv(file.choose()) ; str() ; dim() ; names() as.POSIXct() range() ; mean ; Fonctions utiles :

Aggréger les données Comment calculer les moyennes ou sommes journalières, mensuelles ? # Etape indispensable : création d'un index cut(clim$date, "hour")->hours # Option 1 : Agrégation avec la fonction tapply # Avantage : plus souple pour faire somme/moyenne/… clim.h=data.frame( date=as.POSIXct(levels(days)), Temp=as.vector(tapply(clim$Temp,hours,mean)), Rain=as.vector(tapply(clim$Temp,hours,sum)),... ) # Option 2 : avec la fonction aggregate # Avantage : syntaxe plus légère pour les grandes tables clim.d <- aggregate(clim[c(3:7)], list(days),FUN= mean) clim.d[,1]<-as.POSIXct(clim.d[,1]) names(clim.d)[1]<-"date"

Gestion de l’absence de données : NA > # vecteur avec une valeur NA > tension_mV<-c(2.3,2.1,NA,2.5) > > # impossible de calculer la moyenne > mean(tension_mV) [1] NA > > # la fonction is.na() teste la présence de valeur NA > is.na(tension_mV) [1] FALSE FALSE TRUE FALSE > > # la fonction na.omit() retire les valeurs NA > mean(na.omit(tension_mV)) [1] 2.3 Les données expérimentales sont soumises aux aléas de l’instrumentation et de l’expérimentateur…donc les données sont parfois indisponibles ou erronnées. R permet une gestion optimale de ce type de problème, avec les types de données NA, pour « Not Available ».

Gestion de l’absence de données : NA # Option 1 : Agrégation avec la fonction tapply clim.d=data.frame( date=as.POSIXct(levels(days)), Temp=as.vector(tapply(clim$Temp,days,mean,na.rm=TRUE)), Rain=as.vector(tapply(clim$Temp,days,sum,na.rm=TRUE)),... ) # Option 2 : avec la fonction aggregate clim.d <- aggregate(clim[c(3:7)], list(days),FUN= mean, na.rm=TRUE) clim.d[,1]<-as.POSIXct(clim.d[,1]) names(clim.d)[1]<-"date" Il est possible d’utiliser tapply et aggregate avec l’option na.rm=TRUE les valeurs aggrégées (moyennes/sommes) peuvent ne plus avoir de sens !

Les tableau de données : exercice 2 Combien de valeurs NA dans les mesures de température ( Temp ) du tableau clim ? Les données du tableau clim sont actuellement à pas de temps de 15 min. Créer un tableau clim.d à pas de temps journalier des variables SolRad, WindSpeed, Temp, Rain. Représenter le graphique de la température journalière moyenne en fonction du temps is.na() ; tapply() ; data.frame() ; plot() Fonctions utiles :

Gestion de l’espace de travail save.image() enregistrer l’espace de travail load() ouvrir un espace de travail Pendant l’utilisation de R, les données sont enregistrées de manière provisoire dans un espace de travail. On peut visualiser le contenu de ce fichier avec ls () Cet espace de travail peut aussi être enregistré de manière permanente, puis être ré-ouvert : Exemple : setwd("c:\ma_super_these\data\") save.image("cours1.RData")

Exercice 3 : Assemblage des tables de données Importer les fichiers clim_extract.csv et clim_data_wind Assembler les fichier avec la fonction cbind, puis merge Importer les fichiers clim_data_april_july_2011.csv et clim_data_august_2011.csv Ajouter les valeurs du second fichier au premier avec rbind…