col_types com coletores
Outra maneira de definir os tipos das colunas importadas é usar funções de coleta (collectors). Elas podem ser passadas em uma list() no argumento col_types das funções read_ para indicar a elas como interpretar os valores de uma coluna.
Para obter uma lista completa das funções de coleta, você pode consultar a documentação sobre collector. Neste exercício, você vai precisar de duas funções de coleta:
col_integer(): a coluna deve ser interpretada como um número inteiro.col_factor(levels, ordered = FALSE): a coluna deve ser interpretada como um fator com níveis (levels).
Neste exercício, você vai trabalhar com hotdogs.txt (visualizar), um arquivo delimitado por tabulação sem nomes de colunas na primeira linha.
Este exercício faz parte do curso
Introdução à Importação de Dados no R
Instruções do exercício
hotdogsjá foi criado para você sem definir os tipos de coluna. Inspecione seu resumo usando a funçãosummary().- Duas funções de coleta foram definidas para você:
faceint. Dê uma olhada nelas. Você entende o que elas estão coletando? - Na segunda chamada de
read_tsv(), edite o argumentocol_types: Passe umlist()com os elementosfac,inteint, de modo que a primeira coluna seja importada como um fator e a segunda e terceira colunas como inteiros. - Crie um resumo de
hotdogs_factorusandosummary(). Compare isso com o resumo dehotdogs.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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
___