R possède de nombreuses fonctions de base souvent bien utiles, en voici quelques unes. On crée deux vecteurs : a<-c(1,2,3,4,5,6,7,8,9,10)b<-c(11,12,13,14,15,16,17,18,19,20) Longueur des vecteurs : length(a)length(b) Minimum et maximum : min(a)min(b)max(a)max(b) Etendue : range(a)range(b) Moyenne et médiane : mean(a)mean(b)median(a)median(b) Quantile et écart inter-quantile : quantile(a)quantile(b)IQR(a)IQR(b) Variance et écart-type : var(a)var(b)sd(a)sd(b) Concaténation de a et b : c<-c(a,b)cd<-c(b,a)d Somme des éléments du vecteur, produit, différence des éléments consécutifs du vecteur, somme cummulée : v<-c(1,2,3,4)sum(v) #1+2+3+4prod(v) #123*4diff(v) #2-1,3-2,4-3cumsum(v) #1, 1+2, 1+2+3, 1+2+3+4Read More →

Vous voulez représenter vos données avec la boîte à moustache de Mr Tukey (boxplot)? Rien de plus facile avec R. #jeu de données fictif pour exemplea<-c(1,1,1,5,5,5,5,6,6,8,8,20,30)b<-c(0.5,4,5,6,6,6,6,6,7,7,7,7,8)#traçons les boxplots de base avec la fonction boxplotboxplot(a)boxplot(b)#on enlève les outliers, en mettant outline=FALSEboxplot(a,outline=FALSE)boxplot(b,outline=FALSE)#pour les mettre à l’horizontalboxplot(a,horizontal=TRUE)boxplot(b,horizontal=TRUE)#changer de couleurboxplot(a,border="blue")boxplot(b,border="purple")#nouveau jeu de données plus complexen<-c(1,1,1,5,5,5,5,6,6,8,8,20,30,0.5,4,5,6,6,6,6,6,7,7,7,7,8,3,5,8,8,8,8,8,9,9,9,9,11,12)m<-c(rep(‘A’,13),rep(‘B’,13),rep(‘C’,13))data<-data.frame(N=n,M=m)#on visualise le tableau ainsi créédatasummary(data)#On a 13 mesures pour chaque modalité (A,B,C)#comment avoir les boxplots pour chaque modalité?boxplot(data$N~data$M)#on enlève les outliers boxplot(data$N~data$M,outline=FALSE)#on change les couleurs avec l’argument borderboxplot(data$N~data$M,outline=FALSE,border=c("blue","purple","green"))#on change les noms avec names: A devient mesure1, B mesure2, C mesure3boxplot(data$N~data$M,outline=FALSE, names=c("mesure1","mesure2","mesure3"))#on ajoute les légendesboxplot(data$N~data$M,xlab="légende x",ylab="légende y",main="boxplot")#on colore les boîtes avec l’argument colboxplot(data$N~data$M,outline=FALSE,col=c("blue","purple","green")) #on changeRead More →

2348 Il est souvent utile de pouvoir comparer deux séries de données en algorithmique. Il existe quelques fonctions qui permettent ceci : #Prenons 2 séries de valeurs x=c(1,5,8,6,4,9,3,8) y=c(5,5,4,3,8,7,7) La fonction union(x,y) donne un vecteur composé des éléments qui se trouvent dans x ou dans y (union de x et de y). union(x,y) #donnera 1 5 8 6 4 9 3 7 union(y,x) #donnera 5 4 3 8 7 1 6 9 NB : on obtient le même résultat avec unique(c(x,y)) La fonction intersect(x,y) donne un vecteur composé des éléments qui se trouvent à la fois dans x et dans y (intersection de x etRead More →

Devant les importantes possibilités de R, il est possible et utile de lancer certaines recherches en ligne de commande pour trouver des fonctions ou des paquets associés.(NB : une connexion internet est requise) Tout d’abord, pour obtenir l’aide (en anglais) d’une fonction, il y a 2 possibilités : help(LaFonction) #LaFonction = le nom de la fonction#ou?LaFonction#Exemple avec la fonction matrix() qui permet de créer une matrice?matrix Si R vous renvoie un message d’erreur disant que "LaFonction" n’existe pas, c’est que : – soit elle n’existe effectivement pas ! Dans ce cas, vous pouvez essayer de rechercher une fonction qui permet ce que vous voulez viaRead 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 →

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 →

De nombreux systèmes sont modélisés par des équations différentielles ordinaires. R peut permettre de résoudre certains de ces systèmes et aussi d’estimer leurs paramètres. On prend ici l’exemple d’un modèle épidémiologique temporel SI. #edo SIXlibrary(deSolve) # on utilise deSolve#on définit le système dans une fonction six icisix<-function(t,x,parms){    with( as.list(c(parms,x)),{    rp<-apexp(-bpt)    rs<-asexp(-0.5(log(t/gs)/bs)^2)        dI<- (rpXS+rsIS)    dS<- -(rpXS+rsIS)    res<-c(dI,dS)    list(res)})}#on définit les paramètres pour la simulation du systèmeparms<-c(ap=0.002, bp=0.0084, as=5.9e-7, bs=0.25, gs=1396, X=1, N=1010)#on crée un vecteur pour le tempstimes<-seq(0:3000)#valeurs initiales des variables (ici tous les individus sont sains au début)y<- xstart <-(c(I = 0, S = 1010))#on résout le système avec la fonction lsodaout<-as.data.frame(lsoda(xstart, times, six,Read More →

On cherche souvent à modéliser un échantillon par une loi de probabilité. A partir d’un jeu de données, comment peut-on trouver les paramètres d’une loi préalablement fixée? Plusieurs méthodes peuvent être utilisées. On prend l’exemple ici du délai entre l’infection d’un individu et la détection de cet individu comme malade.On modélise ici ce délai (en jours) par une loi de Weibull (on peut aussi essayer les lois gamma et lognormale par exemple) La méthode la plus simple est d’utiliser la fonction fitdistr du package MASS.Cette fonction permet d’ajuster de nombreuses lois par maximum de vraisemblance. Regardons ce que ça donne pour une loi Weibull. #onRead More →