col_types z kolektorami
Innym sposobem określania typów importowanych kolumn jest użycie kolektorów. Funkcje kolektorów można przekazać w list() do argumentu col_types funkcji read_, aby wskazać, jak interpretować wartości w danej kolumnie.
Pełną listę funkcji kolektorów znajdziesz w dokumentacji collector. W tym ćwiczeniu będą potrzebne dwie funkcje:
col_integer(): kolumna powinna być interpretowana jako liczba całkowita.col_factor(levels, ordered = FALSE): kolumna powinna być interpretowana jako czynnik (factor) z poziomamilevels.
W tym ćwiczeniu pracujesz z plikiem hotdogs.txt (podgląd), który jest plikiem z separatorem tabulacji i nie zawiera nazw kolumn w pierwszym wierszu.
To ćwiczenie jest częścią kursu
Wprowadzenie do importowania danych w R
Instrukcje do ćwiczenia
- Obiekt
hotdogsjest już dla ciebie utworzony bez ustawiania typów kolumn. Sprawdź jego podsumowanie za pomocą funkcjisummary(). - Zdefiniowano dla ciebie dwie funkcje kolektorów:
faciint. Przyjrzyj się im – czy rozumiesz, co zbierają? - W drugim wywołaniu
read_tsv()zmodyfikuj argumentcol_types: przekażlist()z elementamifac,intiint, tak aby pierwsza kolumna była zaimportowana jako czynnik, a druga i trzecia jako liczby całkowite. - Utwórz
summary()obiektuhotdogs_factor. Porównaj wynik z podsumowaniem obiektuhotdogs.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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
___