col_types avec des collecteurs
Une autre façon de définir les types des colonnes importées consiste à utiliser des collecteurs. Les fonctions de collecteur peuvent être passées 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 de 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 à tabulations sans noms de colonnes sur la première ligne.
Cette activité fait partie du cours
Introduction à l'importation de données dans R
Instructions de l’exercice
hotdogsest créé pour vous sans définir les types de colonnes. Examinez son sommaire 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: transmettez unlist()avec les élémentsfac,intetint, afin que la première colonne soit importée comme facteur, et les deuxième et troisième colonnes comme entiers. - Créez un
summary()dehotdogs_factor. Comparez-le au sommaire dehotdogs.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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
___