La fonction as.period(), du package lubridate, permet de convertir un intervalle en periode selon différentes unités.   library(lubridate)   span <- new_interval(as.POSIXct(« 2009-01-01 »), as.POSIXct(« 2010-02-02 01:01:01 »)) #On crée un nouvel intervalle span [1] 2009-01-01 CET–2010-02-02 01:01:01 CET   as.period(span, unit = « years ») [1] « 1y 1m 1d 1H 1M 1S »   as.period(span, units = « month ») [1] « 13m 1d 1H 1M 1S »   as.period(span, units = « day ») [1] « 397d 1H 1M 1S » as.period(span, units = « second »)[1] « 34304461S »    Read More →

La fonction period(), du package lubridate, permet de créer une période à partir d’un temps écoulé en année, en mois, en jour, ou encore en seconde : period(c(90, 5, 2), c(« second », « minute », « year »)) [1] « 2y 0m 0d 0H 5M 90S »   period(c(3, 1, 2, 13, 1), c(« second », « minute », « hour », « day », « week »)) [1] « 20d 2H 1M 3S »#Les semaines sont converties en jours (20 = 13 + 7)    period(30, « second ») [1] « 30S »  Read More →

La fonction DateUpdate(), du package lubridate, permet de modifier les composantes d’une date : l’année, le mois… ou encore les secondes. Cette fonction renvoie la date modifiée. library(lubridate)  #On crée un date  date <- as.POSIXct(« 2009-02-10 ») date [1] « 2009-02-10 CET »   update(date, year = 2010, month = 1, days = 1) [1] « 2010-01-01 CET »   update(date, minute = 10, second = 3) [1] « 2009-02-10 00:10:03 CET »    Read More →

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 →

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 →

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 →

Les fonctions acast() et dcast() associées à la fonction melt(), du package reshape2, permettent d’obtenir une table de contingence. library(reshape2) # On charge le package reshape2 airquality aqm <- melt(airquality, id=c(« Month », « Day »), na.rm=TRUE) #On passe d’un format “Wide” à un format “Long” #Pour un array acast(aqm, Month ~ variable, mean) #On obtient une table de contingence contenant la moyenne de chaque variable en fonction du mois acast(aqm, Month ~ variable, mean, margins = TRUE) #On ajoute les moyennes de chaque variable pour l’ensemble des mois #et les moyennes de chaque mois pour l’ensemble des variables #Pour un data.frame dcast(aqm, Month ~ variable, mean, margins =Read More →

La fonction melt(), qui fait partie du package reshape2, permet de modifier le format des données en fonction d’une ou plusieurs variables de référence (id). Ces variables correspondent en général aux variables qualitatives du data.frame. library(reshape2) # On charge le package reshape2 airquality aqm <- melt(airquality, id=c(« Month », « Day »), na.rm=TRUE)   aqm   Read More →