Kom igångKom igång gratis

col_types med collectors

Ett annat sätt att ange kolumntyper vid import är att använda collectors. Collector-funktioner kan skickas i en list() till argumentet col_types i read_-funktioner för att styra hur värdena i en kolumn tolkas.

En fullständig lista över collector-funktioner finns i dokumentationen för collector. I den här övningen behöver du två collector-funktioner:

  • col_integer(): kolumnen tolkas som ett heltal.
  • col_factor(levels, ordered = FALSE): kolumnen tolkas som en faktor med levels.

I den här övningen arbetar du med hotdogs.txt (visa), en tabbavgränsad fil utan kolumnnamn på första raden.

Den här övningen är en del av kursen

Introduktion till dataimport i R

Visa kurs

Övningsinstruktioner

  • hotdogs är redan skapad utan angivna kolumntyper. Inspektera dess sammanfattning med funktionen summary().
  • Två collector-funktioner är definierade åt dig: fac och int. Ta en titt på dem – förstår du vad de samlar in?
  • I det andra anropet till read_tsv(), redigera argumentet col_types: skicka in en list() med elementen fac, int och int, så att den första kolumnen importeras som en faktor och den andra och tredje kolumnen som heltal.
  • Skapa en summary() av hotdogs_factor. Jämför den med sammanfattningen av hotdogs.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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
___
Redigera och kör kod