forcats 0.2.0 has three new functions:
as_factor()
is a generic version of as.factor()
, which creates factors from character vectors ordered by appearance, rather than alphabetically. This ensures means that as_factor(x)
will always return the same result, regardless of the current locale.
fct_other()
makes it easier to convert selected levels to “other”:
x <- factor(rep(LETTERS[1:6], times = c(10, 5, 1, 1, 1, 1)))
x %>%
fct_other(keep = c("A", "B")) %>%
fct_count()
#> # A tibble: 3 × 2
#> f n
#> <fctr> <int>
#> 1 A 10
#> 2 B 5
#> 3 Other 4
x %>%
fct_other(drop = c("A", "B")) %>%
fct_count()
#> # A tibble: 5 × 2
#> f n
#> <fctr> <int>
#> 1 C 1
#> 2 D 1
#> 3 E 1
#> 4 F 1
#> 5 Other 15
fct_relabel()
allows programmatic relabeling of levels:
x <- factor(letters[1:3])
x
#> [1] a b c
#> Levels: a b c
x %>% fct_relabel(function(x) paste0("-", x, "-"))
#> [1] -a- -b- -c-
#> Levels: -a- -b- -c-
There were a number of other minor improvements and bug fixes. You can see a full list in the release notes