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 →

Dans R il est possible d’effectuer des comparaisons ou des tests qui vont sortir la valeur TRUE si vrai et FALSE si faux Voici les différents opérateur que l’on peut utilser > # strictement supérieur< # strictement inférieur>= # supérieur ou égal<= # inférieur ou égal!= # différent== # égal   ( oui il faut mettre == et pas =) un peu moins utile mais à avoir sous le coude au cas où: ! # négation &, && # et|, || # ou inclusif (retournera VRAI si l’une ou l’autre ou les deux propositions sont vraies)xor(,) # ou exclusif (retournera VRAI si l’une ou l’autre maisRead More →

Pour charger un fichier excel vous avez 3 façons de faire 1 Vous pouvez utiliser Rcmdr library(Rcmdr) # puis importer des données.. ça marche plutôt bien.. mais que sous windows En pratique Rcmdr utilise le package RODBC.Je le trouve peu intuitif en ligne de commande et vous propose d’utiliser le package xlsReadWrite 2 Le package xlsReadWrite library(xlsReadWrite)xls.getshlib() # indispensabledonnee<-read.xls(« data.xls ») Par contre cela ne marche jamais vraiment parfaitement bien lorqu’il y a des onglets ou pour des cas un peu spéciaux. Il existe une version pro, payante de ce package qui utilise des fichiers binaires propriétaires, mais il serait dommage d’utiliser cela. J’en arrive donc auRead More →