La fonction colsplit(), qui fait partie du package reshape2, permet de séparer des éléments d’un vecteur en plusieurs colonnes et de retourner un data.frame. Cela peut être utile lorsqu’on a une combinaison de deux variables associées et séparées par un espace, un « – » ou encore un « _ ». Library(reshape2)   x <- c(« Jan-2001 », « Fev-2001 », « Mar-2002 », « Dec-2005 ») vars <- colsplit(x, « -« , c(« Mois », « Annee »))#On sépare les deux variables « Mois » et « Année » contenues dans x et séparées par un « – »  vars   Mois Annee 1  Jan  2001 2  Fev  2001 3  Mar  2002 4  Dec  2005   str(vars) ‘data.frame’:   4 obs. of  2 variables:  $ Mois : chr Read More →

Plusieurs fonctions existent sur R et permettent d’arrondir un nombre selon différentes règles :   floor(1.26)   #floor() arrondit à l’entier le plus petit [1] 1   ceiling(1.26) #ceiling() arrondit à l’entier le plus grand [1] 2   #round() arrondit au nombre le plus proche #le paramètre digit précise le nombre de chiffres après la virgule que nous voulons conserver round(1.26, digits=0) [1] 1 round(1.76, digits=0) [1] 2 round(1.76, digits=1) [1] 1.8 round(1.72, digits=1) [1] 1.7  Read More →

La fonction outer() permet d’appliquer une fonction à chaque couple de deux vecteurs. La fonction outer() retourne une matrice de la forme M(i, j) = f (xi , yj) où x et y sont des vecteurs et f une fonction de deux variables → f (x, y) #On crée deux vecteurs : A <- sample(5) A B <- c(2,6) outer(A,B, FUN= »+ ») #On ajoute chaque élément de A et de B 2 à 2    On obtient : outer(A,B,FUN= »+ »)      [,1] [,2] [1,]    5    9 [2,]    7   11 [3,]    6   10 [4,]    3    7 [5,]    4    8     Mois <-c(« Janv », »Fev », »Mars ») Année <- 2008:2010 outer(Mois,Année,FUN= »paste », sep= »-« )Read More →

L’opérateur %in% teste le contenu de deux vecteurs en retournant des éléments booléens (TRUE si l’élément est présent dans les deux vecteurs, False sinon), de la même longueur que le premier vecteur testé.   fleurs_A <- c(« Bleuet », « Campanule », « Capucines », « Clématite », « Coquelicot »)   fleurs_B <- c(« Bleuet », « Bruyère », « Campanule », « Capucines », « Colchique », « Clématite », « Coquelicot », « Gentiane », « Géranium », « Iris »)   fleurs_B %in% fleurs_A #On teste si le contenu de « fleurs_B » est présent dans  «  fleurs_A »     On obtient : fleurs_B %in% fleurs_A TRUE FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE  Read More →

La fonction sweep() permet d’appliquer des opérations sur l’ensemble d’une matrice, sur les lignes ou sur les colonnes. X <- matrix (sample(9),ncol=3) X Y <- matrix (sample(9),ncol=3) Y #Nous créons deux matrices 3×3 remplies par 9 chiffres choisis au hasard   sweep(X,1,3,FUN= »-« ) #Nous soustrayons 3 à tous les élèments de X sweep(X,1,Y,FUN= »-« ) #Nous soustrayons Y à X   Z <- matrix (sample(12),ncol=3)  #Z est une matrice 3×4 A <- matrix(sample(3),ncol=1)    #A est une matrice 1×3 B <- matrix(sample(4),ncol=1)    #B est une matrice 1×4   sweep(Z,1,B,FUN= »+ »)                #On ajoute B à Z en appliquant la somme sur les colonnes sweep(Z,2,A,FUN= »+ »)                #On ajoute A à Z enRead More →

Les fonction colSums() et rowSums() permettent de calculer les sommes respectivement, sur les colonnes et les lignes d’une matrice. Les fonction colMeans() et rowMeans() permettent de calculer les moyennes respectivement, sur les colonnes et les lignes d’une matrice.   m <- matrix(data = c(12,15,14,13,16,18,15,5,14,11,10,17,4,6,17,16), nrow=4, ncol=4) #On crée une matrice à 4 colonnes et 4 lignes   colSums(m)        #On fait la somme sur les colonnes [1] 54 54 52 43   rowSums(m)       #On fait la somme sur les lignes [1] 46 50 56 51   colMeans(m)      #On fait la moyenne sur les colonnes [1] 13.50 13.50 13.00 10.75   rowMeans(m)       #On fait la moyenne surRead More →

La fonction as.data.frame() permet de passer d’un tableau croisé à un data.frame.   sechage <- factor(c(rep(« lent »,5),rep(« rapide »,5))) marque <- factor(c(rep(« Mer »,3),rep(« Cim »,3),rep(« vex »,4)))   ciment <- cbind.data.frame(sechage,marque)   tab_croise<-table(ciment$sechage,ciment$marque) #On crée un tableau croisé   tab_croise          Cim Mer vex   lent     2   3   0   rapide   1   0   4     as.data.frame(tab_croise) # On reconvertie le tableau croisé en data.frame   On obtient : as.data.frame(tab_croise)     Var1 Var2 Freq 1   lent  Cim    2 2 rapide  Cim    1 3   lent  Mer    3 4 rapide  Mer    0 5   lent  vex    0 6 rapide  vex    4  Read More →

Les fonctions table() et xtabs() permettent d’obtenir directement un tableau croisé à partir des colonnes d’un data.frame sechage <- factor(c(rep(« lent »,5),rep(« rapide »,5))) marque <- factor(c(rep(« Mer »,3),rep(« Cim »,3),rep(« vex »,4)))   ciment <- cbind.data.frame(sechage,marque) #On colle les deux variables pour obtenir un data.frame  xtabs(~sechage+marque,data=ciment)  table(ciment$sechage,ciment$marque) #Les fonctions table() et xtabs() sont équivalentes On obtient : table(ciment$sechage,ciment$marque)            Cim Mer vex   lent     2   3   0   rapide   1   0   4  Read More →

La fonction merge() permet de fusionner deux data.frame ayant une variables en commun ainsi que des données complémentaires. age <- c(11,13,14) prenom <- c(« simon », »nicolas », »cyril ») moyenne <- c(12.1,14.2,8.6) classe <- factor(c(« 6eme », »4eme », »3eme »))   eleves <- cbind.data.frame(age,prenom,classe, moyenne) #On colle les données dans un data.frame   nb_elev <- c(29,32,36,33) moy_classe <- c(10.2,11.3,10.6,10.9) caract_classe <- cbind.data.frame(c(« 6eme », »5eme », »4eme », »3eme »),nb_elev,moy_classe) #On colle les données dans un data.frame   names(caract_classe) <- c(« classe », »effectif », »moyenne de la classe ») #On attribue à chaque variable le nom que l’on désire   merge(eleves,caract_classe,by= »classe »)  #On fusionne les données dans un data.frame #La clé commune aux données est la variable « classe » #En effet, la variable commune aux data.frame « eleves » et « caract_classe » estRead More →

La fonction cbind.data.frame() permet de coller des colonnes et d’obtenir un data.frame. sechage <- factor(c(rep(« lent »,5),rep(« rapide »,5))) marque <- factor(c(rep(« Mer »,3),rep(« Cim »,3),rep(« vex »,4))) #On crée deux facteurs que l’on souhaite coller ciment <- cbind.data.frame(sechage, marque) #On colle ces deux facteurs De la même manière, la fonction rbind.data.frame() permet de coller des lignes et d’obtenir un data.frameRead More →