knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) options(rmarkdown.html_vignette.check_title = FALSE)
Tidycomm provides four functions to easily transform continuous scales and to standardize them:
reverse_scale()
simply turns a scale upside downminmax_scale()
down- or upsizes a scale to new minimum/maximum while retaining distancescenter_scale()
subtracts the mean from each individual data point to center a scale at a mean of 0z_scale()
works just like center_scale()
but also divides the result by the standard deviation to also obtain a standard deviation of 1 and make it comparable to other z-standardized distributionssetna_scale()
: Sets specified values to NA
in selected variables or the entire data frame.recode_cat_scale()
: Recodes categorical variables based on provided assignments.categorize_scale()
: Recodes numeric scales into categorical variables based on provided breaks and labels.dummify_scale()
: Transforms categorical variables into dummy variables.These functions provide convenience wrappers that make it easy to read and spell out how you transformed your scales.
library(tidycomm)
The easiest one is to reverse your scale. You can just specify the scale and define the scale's lower and upper end. Take autonomy_emphasis
as an example that originally ranges from 1 to 5. We will reverse it to range from 5 to 1.
The function adds a new column named autonomy_emphasis_rev
:
WoJ %>% reverse_scale(autonomy_emphasis, lower_end = 1, upper_end = 5) %>% dplyr::select(autonomy_emphasis, autonomy_emphasis_rev)
Alternatively, you can also specify the new column name manually:
WoJ %>% reverse_scale(autonomy_emphasis, name = "new_emphasis", lower_end = 1, upper_end = 5) %>% dplyr::select(autonomy_emphasis, new_emphasis)
minmax_scale()
just takes your continuous scale to a new range. For example, convert the 1-5 scale of autonomy_emphasis
to a 1-10 scale while keeping the distances:
WoJ %>% minmax_scale(autonomy_emphasis, change_to_min = 1, change_to_max = 10) %>% dplyr::select(autonomy_emphasis, autonomy_emphasis_1to10)
center_scale()
moves your continuous scale around a mean of 0:
WoJ %>% center_scale(autonomy_selection) %>% dplyr::select(autonomy_selection, autonomy_selection_centered)
Finally, z_scale()
does more or less the same but standardizes the outcome. To visualize this, we look at it with a visualized tab_frequencies()
:
WoJ %>% z_scale(autonomy_selection) %>% tab_frequencies(autonomy_selection, autonomy_selection_z) %>% visualize()
To set a specific value to NA
:
WoJ %>% setna_scale(autonomy_emphasis, value = 5) %>% dplyr::select(autonomy_emphasis, autonomy_emphasis_na)
For recoding categorical scales:
WoJ %>% dplyr::select(country) %>% recode_cat_scale(country, assign = c("Germany" = "german", "Switzerland" = "swiss"), other = "other")
To recode numeric scales into categories:
WoJ %>% dplyr::select(autonomy_emphasis) %>% categorize_scale(autonomy_emphasis, lower_end =1, upper_end =5, breaks = c(2, 3), labels = c("Low", "Medium", "High"))
And to create dummy variables:
WoJ %>% dplyr::select(temp_contract) %>% dummify_scale(temp_contract)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.