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 →

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 →

La fonction « by » est très intéressante pour éviter des boucles « for » et ainsi optimiser le code data(iris)summary(iris)by(iris[,-5],iris[,5],mean)  ou encore quant vous voulez effectuer une fonction qui n’est pas définie. by(iris[,-5],iris[,5],function(ob){#mettez ici l’opération que vous voulez faire sur le subsetreturn()})  Le problème peut être que by retourne une liste et que l’on voudrait avoir un tableau de données. C’est ce que fait la fonction do.call, elle prend une liste et effectue une action dessus (ici rbind). data(iris)summary(iris)do.call(rbind,by(iris[,-5],iris[,5],mean) )Read More →