2. Reshape2
• Obtenir des tableau croisés :
– sous forme de matrice/vecteur/array acast
– sous forme de data frame dcast
• Plus de 2 dimensions pour « acast »
4. Reshape2 : dcast
dcast(data = table, formula = lignes ~ colonnes, value.var=cases,
fun.aggregate= fonction)
table : données qu’on veut « transformer »
lignes : variables qu’on veut en ligne
colonnes : variables qu’on veut en colonnes
case : variable qu’on veut dans les cases du tableau
fonction : fonction utilisée pour obtenir la valeur d’une
case
5. Reshape2 : dcast
dcast(data = table, formula = lignes ~ colonnes,
value.var=cases, fun.aggregate= fonction)
lignes : variables qu’on veut en ligne
colonnes : variables qu’on veut en colonnes
Rq : on peut remplacer « colonnes » par « . » => une
seule colonne
6. Reshape2 : dcast
dcast(data = table, formula = lignes ~ colonnes,
value.var=cases, fun.aggregate= fonction)
case : variable qu’on veut dans chaque case du tableau
La fonction s’applique sur la variable choisie en case :
somme, moyenne, nombre, min, max ...
7. Reshape2 : exemples
library("reshape2")
load("D:/MeetUp/Raddicts/presentation/2 meetup/data/lego.R")
# nombre de coffrets sortis par année pour chaque série
tc1 <- dcast(data=lego,formula=Series~Released, value.var="Series",fun.aggregate= length)
# nombre total de personnages dans chaque coffret par année de sortie pour chaque série
tc2 <- dcast(data=lego,formula=Series~Released, value.var="NbPerso",fun.aggregate= sum)
# si on veut la moyenne : ajout du paramètre "fill" pour remplacer les manquants
tc3 <- dcast(data=lego,formula=Series~Released, value.var="NbPerso",
fun.aggregate= mean,fill=0)
# prix moyen par année pour chaque série
tc4 <- dcast(data=lego,formula=Series~Released, value.var="Price",
fun.aggregate= mean,fill=0)
# nombre de boites sorties dans la table de données (nombre de lignes par séries)
tc5 <- dcast(data=lego,formula=Series~., value.var="Series",fun.aggregate= length)