Commençons par un point important : un tibble est un data.frame… mais un data.frame amélioré ! Élément central du tidyverse, cette forme diffère des data.frame natifs dans deux comportements : l’affichage : les tibbles s’adaptent à l’écran, et chaque colonne affiche son type. la sélection : elle est plus stricte dans un tibble — elle ne se fait jamais en partial match, et un message d’erreur s’affiche lorsque vous sélectionner un élément qui n’existe pas. Pour créer un tibble, deux solutions : la conversion depuis un data.frame, ou la création à la main. library(tibble) data(« swiss ») as_tibble(swiss) tibble(x = 1:4, y = 5:8)Read More →

Pour ajouter une colonne, direction la fonction mutate. Avec celle-ci, vous pouvez insérer un objet externe au tableau (par exemple une liste), ou le résultat de l’opération sur une ou plusieurs colonnes. data(« faithfuld ») library(dplyr) mutate(faithful, index= 1:nrow(faithful), er.wa = eruptions / waiting)Read More →

Votre jeu de données est trop grand ? Vous avez trop de colonnes ? Vous pouvez en sélectionner très simplement avec la fonction select() de dplyr. Comme toutes les fonctions du tidyverse, le premier argument est l’objet contenant le jeu de données. Puis, il suffit d’entrer le nom des colonnes à conserver. library(dplyr) data(« smiths ») select(smiths, subject, age)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 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 →

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 →

La fonction cbind.data.frame() permet de coller des colonnes et d’obtenir un data.frame. sechage <- factor(c(rep(« lent »,5),rep(« rapide »,5))) marque <- factor(c(rep(« Mer »,3),rep(« Cim »,3),rep(« vex »,4))) #On crée deux facteurs que l’on souhaite coller ciment <- cbind.data.frame(sechage, marque) #On colle ces deux facteurs De la même manière, la fonction rbind.data.frame() permet de coller des lignes et d’obtenir un data.frameRead 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 →