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 →

La fonction lapply() permet d’appliquer une fonction à chaque élément d’une liste. Le premier argument est une liste sur laquelle on veut appliquer la fonction placée en deuxième argument (mean, sum, sd, function(x)…). x <- list(a = 1:7, b = runif(n = 5, min = 10, max = 20), booleen = c(TRUE,FALSE,FALSE,TRUE)) y<-lapply(x,mean) #de manière plus générale, cela équivaut à : y<-apply(x,function(x) mean(x)) # on ajoute function(x) devant une les fonctions non-prédéfinies dans R z<-sapply(x,mean) # la fonction sapply est équivalente à lapply # mais lapply retourne une liste tandis que la fonction sapply retourne un vecteur numérique, une matrice ou quand cela n’est pasRead More →

La fonction class() permet d’obtenir la classe d’un objet et la fonction sapply() permet d’appliquer la fonction class() à toutes les colonnes d’un data.frame. iris #On visualise les données sapply(iris,class)   On obtient : sapply(iris,class) Sepal.Length  Sepal.Width  Petal.Length   Petal.Width      Species  « numeric »     « numeric »    « numeric »     « numeric »       « factor »Read More →

R n’aime pas les boucles: c’est long, parfois ca plante..mais surtout c’est long :). Une des fonctions qu’il faut absolument maîtriser est apply. Elle permet de réaliser en parallèle la même opération sur toutes les lignes/ toutes les colonnes d’une matrice ou d ‘un jeu de données. Pour utiliser apply, il faut créer une fonction qui prend en paramètre un vecteur et qui nous ressort une transformation de ce vecteur. que ce vecteur soit de la forme qu’une ligne ou qu’une colonne de notre jeu de données (prendre en compte les variables quali, l’ordre des variables..) lancer apply sur son jeu de données, en précisantRead More →

R n’aime pas les boucles: c’est long, parfois ca plante..mais surtout c’est long :). Une des fonctions qu’il faut absolument maîtriser est apply. Elle permet de réaliser en parallèle la même opération sur toutes les lignes/ toutes les colonnes d’une matrice ou d ‘un jeu de données. Pour utiliser apply, il faut créer une fonction qui prend en paramètre un vecteur et qui nous ressort une transformation de ce vecteur. que ce vecteur soit de la forme qu’une ligne ou qu’une colonne de notre jeu de données (prendre en compte les variables quali, l’ordre des variables..) lancer apply sur son jeu de données, en précisantRead More →

Plusieurs façon de faire, à vous de choisir celle qui vous plait le plus 🙂 Fabriquons un petit jeu de données auquel nous souhaitons ajouter une colonne contenant le nombre ne NA sur chacune des lignes. library(tidyverse) dataset <- tribble(~a,~b,~c, 1,NA,NA, NA,NA,NA, 1,2,3, NA,3,NA ) A l'ancienne dataset$nb <- apply(dataset, MARGIN = 1, function(x){sum(is.na(x))}) avec du pmap et du mutate dataset %&gt;% mutate(nb = pmap(.,function(a,b,c){sum(is.na(a),is.na(b),is.na(c))}), nb= unlist(nb)) Mais c’est dommage de devoir spécifier a, b et c. donc simplifions : dataset %&gt;% mutate(nb = pmap_dbl(., function(…){sum(is.na(c(…)))})) Cela reste à mon goût un peu trop verbeux Avec rowSums dataset %&gt;% mutate(nb = rowSums(is.na(.))) ça c’est propreRead More →