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 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 →

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 →

La fonction reshape() permet de modifier le format des données en fonction de la variable qu’on associe au paramètre « direction ». df <- data.frame(id = rep(1:4, rep(2,4)),                  visit = I(rep(c(« Before », »After »), 4)),                  x = rnorm(4), y = runif(4)) df # df est un data.frame de dimension 8 X 4 avec des répétitions  # On simplifie le tableau en enlevant les répétitions df2=reshape(df, timevar = « visit », idvar = « id », direction = « wide »)  # Le paramètre « direction » associé à la valeur « long » permet de récupérer le format original des données. reshape(df2, timevar = « visit », idvar = « id », direction = « long »)  Read More →

La fonction ddply(), faisant partie du package plyr, permet d’appliquer une fonction à une ou plusieurs colonnes d’un data.frame en fonction des modalités d’une ou deux variables, et d’ajouter ces données à ce data.frame. library(plyr)        # On charge le package plyr #On construit un data.frame : dfx <- data.frame(     group <- c(rep(‘A’, 8), rep(‘B’, 15), rep(‘C’, 6)),     sex <- sample(c(« M », « F »), size = 29, replace = TRUE),     age <- runif(n = 29, min = 18, max = 54))   ddply(dfx, .(group, sex), mutate,     mean = round(mean(age), 2),     sd = round(sd(age), 2)) # On obtient laRead More →