Vous savez comment filtrer un jeu de données avec dplyr ? : filter(), on peut donc utiliser une règle pour filtrer sur les valeurs manquantes (les fameux NA) en utilisant la fonction is.na. library(dplyr) df <- tibble(x1 = c(1, 2, NA, 4), x2 = c(« a », NA, « b », « c »), y = c(NA, TRUE, FALSE, TRUE)) df %>% filter(!is.na(x1)) Mais si vous voulez supprimer les lignes qui contiennent des NA dans plusieurs colonnes, voire toutes les colonnes, il vaut mieux utiliser drop_na du package {tidyr}. Vous pourrez même utiliser les « helpers » comme pour la fonction select de {dplyr} pour choisir les colonnes avec des règles. library(tidyr) dfRead More →

Comme on est dans le {tidyverse}, on va utiliser les bons termes : Nous allons utiliser le pipe pour rendre le code plus clair ( Le pipe, qu’est-ce que c’est ? ) On ne travaille plus avec des dataframes, mais avec des tibble: (tibble ou data.frame ?) Et donc on ne supprime pas de ligne, mais on filtre les données en fonction d’une condition. En effet, si vous souhaitez retirer des lignes de données, vous avez sûrement une bonne raison. Cette bonne raison se trouve dans les données elles-mêmes. Vous utilisez donc cette information pour filtrer les données. library(dplyr) iris %>% filter(Species != « setosa ») PourRead More →

Est-ce que la valeur associée à votre variable est comprise entre deux autres valeurs ? Vous le saurez en faisant appel à between, du package {dplyr} ! {dplyr} est un package du tidyverse que l’on a jamais fini de découvrir. Regorgeant de fonctions facilitant la manipulation de données, ce package répond à quasiment toutes les questions que vous pourriez vous poser sur vos données… Et par exemple : comment savoir si une valeur est entre deux autres valeurs. Pour le savoir, direction between, qui prendra trois paramètres : votre valeur, la valeur de la borne de droite, et la valeur de la borne de gauche.Read More →

Plus de robustesse, plus de sécurité, nous avons nommé bind_rows et bind_cols ! Package du tidyverse, {dplyr} regorge d’outils ultra efficaces pour la manipulation de données. Parmi eux, deux petites fonctions qui, à première vue, ne payent pas de mine… et pourtant. bind_rows et bind_cols vous permettent d’effectuer l’équivalent de rbind et cbind mais sont plus fonctionnelles, et affichent des résultats plus propres et exploitables. Commençons par créer deux tableaux. Si nous tentons de les juxtaposer avec la fonction de base rbind, nous aurons une erreur. À l’inverse, bind_rows fera le job, en peuplant les « colonnes manquantes » par des NA. library(dplyr) df1 <- data.frame(a =Read More →

Parfois, on souhaite appliquer une fonction à plusieurs colonnes de notre tableau, en fonction d’une condition. Pour cela, direction mutate_if(), du package {dplyr}. Comme son nom l’indique, mutate_if effectue une modification si la condition est remplie. Les arguments sont : Un tableau de données La condition à remplir (le test effectué qui devra renvoyé TRUE) La transformation à effectuer. Et pour comprendre par l’exemple : library(dplyr) data(« iris ») str(iris) ‘data.frame’: 150 obs. of 5 variables: $ Sepal.Length: num 5.1 4.9 4.7 4.6 … $ Sepal.Width : num 3.5 3 3.2 3.1 3 … $ Petal.Length: num 1.4 1.4 1.3 1.5 … $ Petal.Width : num 0.2Read More →

Amoureux du paste de R base ? str_c du package {stringr} va vous plaire ! Pourquoi utiliser str_c ? Pour sa simplicité, mais aussi sa puissance. La première raison de choisir cette fonction : développée dans {stringr}, elle suit la convention d’écriture de toutes les fonctions de ce package. Ainsi, pour concaténer des caractères (strings en anglais), il vous suffira d’appeler str_c. Comme avec la fonction de base, vous pouvez choisir le séparateur : library(stringr) str_c(« une », « chaine », « de », « caractères », sep =  » « ) [1] « une chaine de caractères » str_c(« une », « chaine », « de », « caractères », sep = « _ ») [1] « une_chaine_de_caractères » À noter : vous pouvez utiliser la fonctionRead More →

Vous avez besoin de manipuler des chaîne de caractères en toute simplicité ? Alors vous allez aimer le package stringr ! Comme toutes les fonctions du tidyverse, la syntaxe est claire, rien que dans le nom. Pour remplacer toutes les chaînes de caractères, on va utiliser str_replace_all (string, replace, all), tout simplement. Autre règle suivie par cette fonction : le premier argument est l’objet qui contient la chaîne. Vous devrez coder : str_replace_all(df, pattern, replacement). Par exemple : library(stringr) str_replace_all(« Une chaîne de caractères », pattern = « Une », replacement = « 1 ») [1] « 1 chaîne de caractères » À noter : l’équivalent str_replace, qui ne remplacera que le premierRead More →

Vous avez besoin de sélectionner des colonnes en fonction de leur nom ? Faites appel à select, fonction du package dplyr. Vous trouvez laborieux de taper à la main l’ensemble des noms des colonnes que vous souhaitez ? Il y a un paramètre pour ça ! Si vos noms de colonnes suivent un pattern défini, vous pouvez les sélectionner avec starts_with(). library(dplyr) data(« who ») select(who, starts_with(« newrel »)) À noter que vous pouvez également utiliser ends_with(), matches() ou encore contains().Read More →

Pour sélectionner une série de lignes d’un tableau par leur index, faites appel à la fonction slice() du package dplyr ! Comme tous ses cousins du tidyverse, slice() prend en premier argument le nom du tableau à transformer. Ensuite, vous pouvez sélectionner vos lignes par leur index, avec un vecteur numérique. library(dplyr) data(« presidential ») slice(presidential, 1:25)Read More →