Example: bachelor of science

Programmation en langage R if(x>0) y=x*log(x)elsey=0

1 Programmation en langage RProgrammation en langage RR sum Un aper u de la syntaxe du langage S mis en uvre dans R : fonc-tions, instructions de contr le et d it rations, des tutoriels R. D marrer rapidement avec R Initiation R Fonctions graphiques de R Programmation en R MapReduce pour le statisticienLes aspect statistiques sont d velopp s dans les diff rents sc nariosde introductionR est la versionGNUdu langage S con u initialement aux Bell labs parJohn Chambers partir de 1975 dans une syntaxe tr s proche du langage C. Enseptembre 2013, l index TIOBE le classe en 18 me position loin derri re le C(1er) ou Java (2 me) mais devant MATLAB (19) ou SAS (21).2 Structure de contr leIl est important d int grer que R, comme Matlab, est un langage inter-pr t donc lent, voire tr s lent, losqu il s agit d ex cuter des boucles.

Programmation en R MapReduce pour le statisticien Les aspect statistiques sont développés dans les différents scénarios deWikistat. 1 introduction R est la version GNU du langage S conçu initialement aux Bell labs par John Chambers à partir de 1975 dans une syntaxe très proche du langage C. En septembre 2013, l’indexTIOBEle classe en ...

Tags:

  Langage, Programmation, Programmation en, Programmation en langage r

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Transcription of Programmation en langage R if(x>0) y=x*log(x)elsey=0

1 1 Programmation en langage RProgrammation en langage RR sum Un aper u de la syntaxe du langage S mis en uvre dans R : fonc-tions, instructions de contr le et d it rations, des tutoriels R. D marrer rapidement avec R Initiation R Fonctions graphiques de R Programmation en R MapReduce pour le statisticienLes aspect statistiques sont d velopp s dans les diff rents sc nariosde introductionR est la versionGNUdu langage S con u initialement aux Bell labs parJohn Chambers partir de 1975 dans une syntaxe tr s proche du langage C. Enseptembre 2013, l index TIOBE le classe en 18 me position loin derri re le C(1er) ou Java (2 me) mais devant MATLAB (19) ou SAS (21).2 Structure de contr leIl est important d int grer que R, comme Matlab, est un langage inter-pr t donc lent, voire tr s lent, losqu il s agit d ex cuter des boucles.

2 Celles-cidoivent tre viter d s qu une syntaxe, impliquant des calculs matriciels ou lescommandes de typeapply, peut se Structures conditionnellesif(condition){instruction s}est la syntaxe permettant de calcu-ler les instructions uniquement si la condition est (condition){ A }else{ B }calcule les instructions A si lacondition est vraie et les instructions B sinon. Dans l exemple suivant, les deuxcommandes sont quivalentes :if (x>0) y=x*log(x) else y=0y=ifelse(x>0,x*log(x),0) Structures it rativesCes commandes d finissent des boucles pour ex cuter plusieurs fois uneinstruction ou un bloc d instructions. Les trois types de boucle sont :for var in seq) {commandes}while (condition) {commandes}repeat {commandes; if (condition) break }Dans une bouclefor, le nombre d it rations est fixe alors qu il peut treinfini pour les boucleswhileetrepeat!

3 La condition est valu e avanttoute ex cution danswhilealors querepeatex cute au moins une fois (i in 1:10) print(i)y=z=0;for (i in 1:10) {x=runif(1)if (x> ) y=y+1else z=z+1 }y;zfor (i in c(2,4,5,8)) print(i)x = rnorm(100)y = ifelse(x>0, 1, -1)# conditiony;i=0while (i<10){print(i)i=i+1}Questions1. Que pensez-vous de :for (i in 1:length(b)) a[i]=cos(b[i])2. Obtenir l quivalent de y et z dans la deuxi me boucleforsans en langage R3. Dans l encha nement de commandes ci-dessous, supprimer d abord laboucleforsurjpuis les 2 (1:20,nr=5,nc=4)res=rep(0,5)for (i in 1:5){tmp=0for (j in 1:4) {tmp = tmp + M[i,j]}res[i]=tmp}R ponses1. Cette boucle est inutile. Il suffit de saisira=cos(b). L l ment de base de R est la matrice dont le vecteur estun cas Une solution consiste sommer les l mentsTRUEd un vecteur logiquex=runif(10);y=sum(x> );z=10-y3.

4 Suppression de boucles Boucleforsurj:for (i in 1:5) res[i]=sum(M[i,]) Les 2 boucles :res=apply(M,1,sum)3 PrincipesIl est possible sous R de construire ses propres fonctions. Il est conseill d crire sa fonction dans un (" ")a pour effet de charger la fonction dansl environnempent de travail. Il est aussi possible de d finir directement la fonc-tion par la syntaxe suivante :nomfonction=function(arg1[=exp1],arg2[= exp2],..){bloc d instructionssortie = ..return(sortie)}Les accolades signalent le d but et la fin du code source de la fonction, lescrochets indiquent le caract re facultatif des valeurs par d faut des objet sortie contient le ou les r sultats retourn s par la fonction, on peut enparticulier utiliser une liste pour retourner plusieurs r ExemplesCr ation d une fonction l (x){x+2}ls()MaFonctionMaFonction(3)x = MaFonction(4);xGestion des param tres avec une valeur par d (a,b=7){a+b}Fonction2(2,b=3)Fonction2(5) R sultats multiples dans un objet de type (r){p=2*pi*r;s=pi*r*r;list(rayon=r,perim etre=p,surface=s)}resultat=Calcule(3)res ultat$ray2*pi*resultat$r==resultat$perim resultat$rsurfaceQuestions1.

5 Le recours un objet de typelistest-il indispensable pour la fonctionCalcule()?3 Programmation en langage R2. crire une fonction qui calcule le p rim tre et la surface d un rectangle partir des longueurs l1 et l2 des deux c t s. La fonction renvoie galementla longueur et la largeur du crire une fonction qui calcule lesnpremiers termes de la suite de Fibo-nacci (u1= 0, u2= 1, n >2, un=un 1+un 2)4. Utiliser cette fonction pour calculer le rapport entre 2 termes cons senter ce rapport en fonction du nombre de termes pourn= constatez-vous ? Avez-vous luDa Vinci Code?5. crire une fonction qui supprime les lignes d un ou d une ma-trice pr sentant au moins une valeur ponses1. Les 3 l ments renvoyer tant de type num rique, un vecteur peut Fonctionrectangle()(la fonctionrect()existe d j ) :rectangle=function(l1,l2){p=(l1+l2)*2s= l1*l2list(largeur=min(l1,l2),longueur=ma x(l1,l2),perimetre=p,surface=s)}3.

6 Utilisation de la fonction : rectangle(4,6) ;res=rectangle(8,7) pour calculerles n premiers termes de la suite de Fibonacci :fibo=function(n){res=rep(0,n);res[1]=0; res[2]=1for (i in 3:n) res[i]=res[i-1]+res[i-2]res}# Calcul du rapport de 2 termes cons cutifsres=fibo(20)ratio=res[2:20]/res[1: 19]plot(1:19,ratio,type="b")Le rapport tend vers le nombre d or1+ 52 Une fa on, parmi beaucoup d autres, de r pondre la question consiste cr er une rep re s il y a au moins une valeurmanquante dans un vecteur. Cette fonction filtre les lignes en (vec){any( (vec))} (mat){tmp = apply(mat,1, )mat[!tmp,]}# Application sur une matrice de = matrix(1:40,nc=5) [2,5]=NA; [4,2]= [7,1]=NA; [7,5]= ( )4 Commandes de typeapplyComme d j expliqu , il est vivement recommand d viter les boucles tr schronophages.

7 La fonctionapplyet ses variantes sur des vecteurs, matricesou listes permettent d appliquer une m me fonctionFUNsur toutes les lignes(MARGIN=1) ou les colonnes (MARGIN=2) d une matrice MAT :apply(MAT , MARGIN, FUN)Les fonctionslapplyetsapplycalculent la m me fonction sur tous les l ments d un vecteur ou d une (X,FUN, )permet d appliquer la fonctionFUN tous les l ments du vecteur ou de la liste X. Les valeurs de X sont affect esau premier argument de la fonction FUN. Si la fonction FUN a plusieurs para-m tres d entr e, ils sont sp cifi s Cette fonction retournele r sultat sous la forme de listes. La fonctionsapplyest similaire lapplymais le r sultat est retourn si possible sous forme de (X,GRP,FUN,..)applique une fonction FUN sur les sous-groupes d un vecteur X d finis par une variable de type factor :data(iris)apply(iris[,1:4],2,sum)lapply (iris[,1:4],sum)4 Programmation en langage Rsapply(iris[,1:4],sum)tapply(iris[,1],i ris[,5],sum)


Related search queries