Aantal levels ophalen
Met mutate() en summarize() in dplyr kun je de functie across() gebruiken om aan te geven dat hun tweede argument, een functie, moet worden toegepast op alle kolommen waarvoor het eerste argument waar is.
We gebruiken deze samen met tidyr om het aantal levels voor elke factorvariabele in multiple_choice_responses op te halen. pivot_longer() uit tidyr zet een gegevensset van breed naar lang formaat. De twee argumenten zijn de nieuwe kolomnamen—één bevat de oude kolomnamen en één alle waarden.
Deze oefening maakt deel uit van de cursus
Categorische gegevens in de Tidyverse
Oefeninstructies
- Zet alle character-kolommen om naar factor-kolommen en sla de nieuwe gegevensset op als
responses_as_factors. - Maak een nieuwe gegevensset,
number_of_levels, waarin je:summarizemetacrossgebruikt om de functienlevels()op elke kolom toe te passen.- Het formaat van de gegevensset van breed naar lang verandert.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Change all the character columns to factors
responses_as_factors <- multiple_choice_responses %>%
mutate(___(is.character, as.factor))
number_of_levels <- responses_as_factors %>%
# Apply the function nlevels to each column
summarize(___(everything(), ___)) %>%
# Change the dataset from wide to long
___(everything(), names_to = "variable", values_to = "num_levels")