col_types avec des collecteurs
Une autre façon de définir les types des colonnes importées consiste à utiliser des collectors. Vous pouvez passer des fonctions de collecteur dans un list() à l’argument col_types des fonctions read_ pour leur indiquer comment interpréter les valeurs d’une colonne.
Pour la liste complète des fonctions de collecteur, consultez la documentation collector. Pour cet exercice, vous aurez besoin de deux fonctions de collecteur :
col_integer(): la colonne doit être interprétée comme un entier.col_factor(levels, ordered = FALSE): la colonne doit être interprétée comme un facteur avec deslevels.
Dans cet exercice, vous travaillerez avec hotdogs.txt (view), un fichier délimité par des tabulations sans noms de colonnes sur la première ligne.
Cet exercice fait partie du cours
Introduction à l’importation de données dans R
Instructions
hotdogsest créé pour vous sans définir les types de colonnes. Inspectez son récapitulatif avec la fonctionsummary().- Deux fonctions de collecteur sont définies pour vous :
facetint. Regardez-les : comprenez-vous ce qu’elles collectent ? - Dans le deuxième appel à
read_tsv(), modifiez l’argumentcol_types: passez unlist()avec les élémentsfac,intetint, afin que la première colonne soit importée comme un facteur, et les deuxième et troisième colonnes comme des entiers. - Créez un
summary()dehotdogs_factor. Comparez-le avec le récapitulatif dehotdogs.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Import without col_types
hotdogs <- read_tsv("hotdogs.txt", col_names = c("type", "calories", "sodium"))
# Display the summary of hotdogs
___
# The collectors you will need to import the data
fac <- col_factor(levels = c("Beef", "Meat", "Poultry"))
int <- col_integer()
# Edit the col_types argument to import the data correctly: hotdogs_factor
hotdogs_factor <- read_tsv("hotdogs.txt",
col_names = c("type", "calories", "sodium"),
col_types = NULL)
# Display the summary of hotdogs_factor
___