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 →

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 →

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 install.packages() permet de télécharger des packages et de les installer sur l’ordinateur (On ne fait cela qu’une fois). La fonction library() permet ensuite de charger le package et de rendre les fonctionnalités de celui-ci disponibles (Il faut faire cela à chaque fois que l’on ouvre R). install.packages(« lubridate »)    #On télécharge le packages « lubridate » et on l’installe library(lubridate)                  #On charge ce package et on rend les fonctionnalités de celui-ci disponibles  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 →

La fonction ddply(), faisant partie du package plyr, permet d’appliquer une fonction à des subdivisions d’un 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), summarize,       mean = round(mean(age), 2),       sd = round(sd(age), 2)) # On obtient la moyenne et l’écart type associé à l’âge en fonction du groupe ddply(dfx, .(group, sex), summarize,    Read More →

iris iris_bis <- iris[,-2] # On supprime la 2eme colonne iris_ter <- iris[-20,] # On supprime la 20eme ligne Pour le faire dans le cadre du {tidyverse}, reportez-vous à cette page : https://thinkr.fr/abcdr/comment-supprimer-une-colonne-ou-une-ligne-dans-un-dataframe-avec-le-tidyverse-et-dplyr/Read More →

Les fonctions de la famille apply() et la fonction which() peuvent permettre de compter les éléments identiques, négatifs, positifs ou encore supérieurs ou inférieurs à une certaine valeur dans un data.frame. iris# iris, un tableau de données m <- matrix(data=cbind(rnorm(30, 0), rnorm(30, 2), rnorm(30, 5)), nrow=30, ncol=3) # m, une matrice de données Calculer le nombre d’éléments identiques : ### Dans un tableau :lapply (iris, function(x) length(unique(x))) # retourne une liste sapply (iris, function(x) length(unique(x))) # retourne un vecteur numérique ### Dans une matrice : apply (m, 2,function(x) length(unique(x))) #retourne des entiers Calculer le nombre d’éléments supérieurs ou inférieur à une certaine valeur : ###Read More →