Afin d’utiliser des processus aléatoires mais de faire en sorte qu’ils soient reproductibles dans le temps ou sur une autre machine/système set.seed() est une fonction qui permet de fixer les résultats qui seront fournis par le RNG (random number generator). sample(letters[4:9]) [1] « d » « g » « f » « h » « i » « e » sample(letters[4:9]) [1] « e » « i » « g » « f » « h » « d » sample(letters[4:9]) [1] « f » « d » « e » « h » « i » « g »set.seed(123)sample(letters[4:9]) [1] « e » « g » « i » « f » « h » « d » set.seed(123) sample(letters[4:9]) [1] « e » « g » « i » « f » « h » « d » Comment choisir le chiffre à mettre dans la fonction set.seed ? Au hasard ! 😉Read More →

Si l’on veut sélectionner un sous-ensemble d’un jeu de données à partir d’une condition simple étendue, d’une condition multiple exclusive, d’une condition multiple inclusive, d’une condition multiple exclusive étendue, ou d’une condition multiple inclusive étendue, il faut utiliser les opérateurs logiques OU et/ou ET.Dans R, le ET s’écrit « & », et le OU s’écrit « | ». Une condition simple porte sur une seule colonne.Une condition multiple porte sur plusieurs colonnes à la fois (comme pour les régressions).Une condition étendue porte sur l’union de plusieurs modalités/critères au sein d’une même colonne : elle utilise l’opérateur logique OU.Une condition exclusive est une condition multiple quiRead More →

la parallélisation des calculs, permet d’exploiter au maximum les capacité calculatoire de votre ordinateur en utilisant tous les core de votre machine ( dual core , quad core …)Cette facpon de proceder est rentable si le calcul que vous voulez faire prend plus de temps que le fait de mettre en place la parallélisation library(foreach)library(doSNOW) getDoParWorkers() registerDoSNOW(makeCluster(4, type = « SOCK »))# 2 , 4 ou plus en fonction de votre machine getDoParWorkers() N <- 10^4 system.time(foreach(i = 1:N,.combine = « cbind ») %do% {sum(rnorm(N))}) system.time(foreach(i = 1:N,.combine = « cbind ») %dopar% {sum(rnorm(N))})Read More →

Lorsque l’on réalise des scripts qui vont tourner un certain temps avant d’aboutir au résultat final, il est essentiel d’en optimiser le fonctionnement pour gagner du temps. Il nous faut pour cela un bon indicateur : comment savoir le temps que dure une fonction ou un script ? Vous pouvez utiliser la fonction system.time system.time(for ( i in 1:10000){print(i)})system.time(for ( i in 1:10000){cat(i)})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 →

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 →

i<-0 while (i<10){ print(i) i<-i+1 } print(« on sort de la boucle ») While va réaliser ce qui est écrit entre les accolades {} tant que ce qui est dans les parenthèses () est vrai. Ce code peut donc se traduire de la façon suivante : i vaut 0 tant que (i est inférieur à 0){ afficher i augmenter i de 1 } Dans cet exemple au moment où i vaudra 10, on sortira de la boucle.Read More →

for ( i in 1:10) { print(i) } Cette commande peut se traduire par : Pour (i allant de 1 à 10) { affiche i} Il faut noter que les parenthèses () servent à définir la variable et les valeurs qu’elle va prendre successivement à chaque tour de boucle. Les accolades {} servent à délimiter les actions à effectuer pour chacune des valeurs prises par la variable. IMPORTANT : R n’aime pas vraiment les boucles for, il est beaucoup plus efficace d’utiliser apply. Tout particulièrement pour les très grandes et longues boucles, apply fait cela en une fraction de seconde… alors que for peut mettreRead More →