La fonction ceilling_date(), du package lubridate, permet d’arrondir une donnée de type « date » à la date la plus grande en fonction de différentes unités : library(lubridate)   x <- as.POSIXct(« 2009-08-03 12:01:57.23 »)   ceiling_date(x, « second ») [1] « 2009-08-03 12:01:58 CEST » #On arrondit à la seconde la plus grande   ceiling_date(x, « minute ») [1] « 2009-08-03 12:02:00 CEST » #On arrondit à la minute la plus grande   ceiling_date(x, « hour ») [1] « 2009-08-03 13:00:00 CEST » #On arrondit à l’heure la plus grande   ceiling_date(x, « day ») [1] « 2009-08-04 CEST » #On arrondit au jour le plus grand   ceiling_date(x, « week ») [1] « 2009-08-09 CEST »   ceiling_date(x, « month ») [1] « 2009-09-01 CEST »   ceiling_date(x, « year ») [1] « 2010-01-01 CEST »  Read More →

y <- sample(15)  [1] 10  2 12 14  7  5  6  8  3  4  9 13  1 15 11 #y est un veteur d’entiers   sort(y)        #On trie le vecteur dans l’ordre croissant  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15   rev(sort(y))   #On trie le vecteur dans l’ordre décroissant  [1] 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  Read More →

La fonction melt(), qui fait partie du package reshape2, permet de regrouper les différentes parties d’un array dans un data.frame. library(reshape)   a <- array(c(1:11, NA), c(2,2,3),dimnames=list(NULL, NULL, c(« A », »B », »C »))) a , , A        [,1] [,2] [1,]    1    3 [2,]    2    4   , , B        [,1] [,2] [1,]    5    7 [2,]    6    8   , , C        [,1] [,2] [1,]    9   11 [2,]   10   NA     melt(a, na.rm = TRUE) #On fusionne A, B et C #na.rm permet d’enlever les « NA » du jeu de données   melt(a,na.rm = TRUE, varnames=c(« abscisses », »ordonnées », »variables »)) #On fait la même chose mais cette foisRead More →

b <- array(c(1:11, NA), c(2,2,3))          #On crée un objet de type « array »  dimnames(b)<-list(NULL, NULL, c(« Temp », »Haut », »Long »)) #On attribue un nom aux trois sections de l’array :  « Temp », »Haut » et « Long »   On obtient : > b , , Temp        [,1] [,2] [1,]    1    3 [2,]    2    4   , , Haut        [,1] [,2] [1,]    5    7 [2,]    6    8   , , Long        [,1] [,2] [1,]    9   11[2,]   10   NARead More →

La fonction recast(), du package reshape2, permet d’obtenir une table de contingence en une seule étape à partir d’un data.frame. La fonction renvoie un data.frame.   library(reshape2) # On charge le package reshape2   airquality#En 2 étapes :  aqm <- melt(airquality, id=c(« Month », « Day »), na.rm=TRUE) #On passe d’un format “Wide” à un format “Long” dcast(aqm, Month ~ variable, mean, margins = TRUE) #On obtient une table de contingence contenant la moyenne de chaque variable en fonction du mois  #En 1 seule étape :  recast(airquality, Month~ variable, id.var = 5:6, mean, na.rm=TRUE, margins=TRUE) #La fonction recast() permet d’obtenir une table de contingence en 1 seule étape  Read More →

La fonction type.convert(), qui fait partie du package reshape2, permet de convertir un vecteur de caractères en vecteur numérique.   Library(reshape2)   x <- c(« 14″, »11″, »2 ») #On crée un vecteur class(x) [1] « character »   x <- type.convert(x, dec= ». ») class(x) [1] « integer » x [1] 14 11  2  Read More →

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 →