Introduction à reshape2
Timeri VECCELLA
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 »
DCAST
Parce que 2 dimensions c’est déjà pas mal
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
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
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 ...
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)
MERCI
À vous de jouer !!

Meetup raddicts reshape2

  • 1.
  • 2.
    Reshape2 • Obtenir destableau croisés : – sous forme de matrice/vecteur/array acast – sous forme de data frame dcast • Plus de 2 dimensions pour « acast »
  • 3.
    DCAST Parce que 2dimensions c’est déjà pas mal
  • 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/2meetup/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)
  • 8.