Lorsque l’on manipule des jeux de données on est souvent amené à vouloir rajouter des colonnes, rajouter des lignes concaténer des jeux de données… Pour rajouter des colonnes, il faut utiliser la fonction cbind. Il faut que les 2 jeux de données aient le même nombre de ligne.cbind rajoute les colonnes par la droite. deuxcolonnes<-data.frame(matrix(« x »,150,2))names(deuxcolonnes)<-c(« colonne1″, »colonne2 »)deuxcolonnesrescol<-cbind(iris,deuxcolonnes)head(rescol)  Pour rajouter des lignes il faut utiliser la fonction rbind. Contrainte : il faut avoir le même nombre de colonnes et que ces colonnes aient le même nom. deuxlignes<-data.frame(matrix(1,2,5))names(deuxlignes)<-names(iris)deuxlignesreslign<-rbind(deuxlignes,iris)head(reslign)  Il faut tout de même veiller à conserver une homogénéité dans les variables (rajouter des character dans une colonne de numericRead More →

R est un langage itératif, c’est a dire que le logiciel va interpréter une ligne de code après l’autre.Pour gagner de la place, on peut vouloir écrire une série d’opérations sur une seule ligne. On perd en lisibilité, mais pour les choses simples cela peut être pratique. rm(list=ls(all=TRUE))a<-5b<-7# peut s’écrire sur une ligne grace au séparateur ;rm(list=ls(all=TRUE));a<-5;b<-7 # pour les boucles for while ou les if, on peut compresser comme cela x<-10for ( i in 1:10){print(i)x<-x*iprint(x)print(« coucou »)} # s’écrit en une lignex<-10;for ( i in 1:10){print(i);x<-x*i;print(x);print(« coucou »)}  Read More →

On a parfois besoin d’un jeux de données qui reprend toutes les combinaisons possibles de plusieurs facteurs.Bien sûr on peut le faire à la main, mais il y a beaucoup plus intelligent : la fonction expand.grid fait ça très bien. expand.grid(c(« voiture », »velo »),c(« bleue », »rouge », »vert »),c(« mercedes », »peugeot »)) Cette commande permet de générer toutes les combinaisons possibles : voiture bleue mercedes, voiture bleue peugeot…Read More →

Les packages contiennent un certain nombre de fonctions. Il peut être intéressant de voir comment elles sont codées, pour les comprendre ou les améliorer par exemple. #il suffit de taper son nomlm  # affiche le code source de la fontion lmpage(lm) # affiche une nouvelle fenêtre avec le code source bien mis en forme (avec indentation)dput(lm, control = « useSource ») # permet de voir les commentaires s’il y en a, en pratique page utilise dputpage(lm, control = « useSource ») # cela fonctionne donc aussi.Read More →

R nous donne la possibilité, très pratique, de créer des fonctions personnalisées.Voici l’architecture globale : nomdemafonction<-function(variable1,variable2…){#ici on met le contenu de la fonction (généralement on effectue des transformations aux variables passées en argument)return(Variabledesortie)# il s’agit du résultat que va renvoyer la fonction}#une fois la fonction créée on peut l’utiliser: nomdemafonction(varA,varB) Contrairement à d’autres languages, il n ‘y a pas de contrôle du type de variable que l’on peut utiliser. Il faudra l’inclure dans la fonction pour, par exemple, vérifier que la variable A est bien un vecteur (et pas un data.frame par exemple) Voici un exemple de fonction, il s’agit d’une fonction simple qui vaRead More →

Une variable globale est une variable qui sera accessible partout dans R. C’est-à-dire même quand vous sourcez un fichier, peu importe votre espace de nom. Il n’est pas très propre d’utiliser cette méthode, mais cela peut rendre service. varglob <<- 4 # est une variable globalevarpasglob <- 4# n’est pas globaleRead More →

Le couple save et load a l’inconvénient de forcer le nom de l’objet que vous voulez charger.Exemple : si vous avez enregistré la variable « a » qui vaut 3 grace à save, load vous donnera une variable « a » qui vaut 3, mais vous n’allez pas pouvoir charger cette variable dans un autre objet, et cela écrasera votre variable « a » d’origine. rm(list=ls(all=TRUE)) a<-5 save(a,file= »fichier ») a<-3 load(« fichier ») a # a vaut maintenant 5 , et avec load et save il n’est pas possible de charger ce 5 dans une autre variable pour « sauvegarder » votre 3 dput et dget permettent de stocker un objet dans un fichier et deRead More →

Save et load permettent respectivement de sauvegarder dans un fichier et de restaurer des objets R.En pratique save et load servent tout particulièrement  à enregistrer un environnement de travail. rm(list=ls(all=TRUE)) ls()# la mémoire est vide a<-5 data(iris) b<- matrix(5,5,5) save(a,b,iris,file= »fichier ») # il faut bien penser à préciser le file= rm(list=ls(all=TRUE)) ls()# la mémoire est vide load(« fichier ») ls() # on a retrouvé a , b et iris Attention les objets chargés, s’il ont le même nom qu’un objet existant prendront leur place, effaçant l’objet déjà présent : rm(list=ls(all=TRUE)) a<-5 save(a,file= »fichier ») a<-3 load(« fichier ») a # a vaut maintenant 5Read More →

data(iris)dim(iris) # ce jeu de données contient 5 colonnes et 150 lignes Pour sélectionner une colonne ou une ligne on peut utiliser son rang ( 1er colonne, 2eme colonne…). iris[,1] #on sélectionne la colonne 1, c’est-à-dire la première colonne iris[,3] #on sélectionne la colonne 3 iris[,2:3] #on sélectionne les colonnes 2 et 3 iris[,c(5,2)] #on sélectionne les colonnes 5 et 2 dans cet ordre iris[1,] #on sélectionne la ligne 1 iris[3,] #on sélectionne la ligne 3 iris[2:3,] #on sélectionne les lignes 2 et 3 iris[c(5,2),] #on sélectionne les lignes 5 et 2 dans cet ordre Si on ne sélectionne qu’une seule ligne ou colonne, celaRead More →

find(nom_fonction) # renvoie le nom du package dans lequel se trouve la fonctionapropos(nom_fonction) # renvoie un vecteur de caractères avec le nom de toutes les fonctions en lien avec la premièredemo(graphics)# propose une démonstration de l’utilisation des graphiques avec les codes et les graphiques associés. A la place de graphics on peut également écrire persp, plotmath…objects(grep(« library »,search())) # liste toutes les fonctions présentes dans la librairieRead More →