Learn R Programming

forcats (version 1.0.1)

fct_relabel: Relabel factor levels with a function, collapsing as necessary

Description

Relabel factor levels with a function, collapsing as necessary

Usage

fct_relabel(.f, .fun, ...)

Arguments

.f

A factor (or character vector).

.fun

A function to be applied to each level. Must accept one character argument and return a character vector of the same length as its input.

You can also use lambda notation, \(x). \(x) paste(x, "y") is equivalent to function(x) paste(x, "y") or function(.) paste(., "y").

...

Additional arguments to fun.

Examples

Run this code
gss_cat$partyid |> fct_count()
gss_cat$partyid |>
  fct_relabel(\(x) gsub(",", ", ", x)) |>
  fct_count()

convert_income <- function(x) {
  regex <- "^(?:Lt |)[$]([0-9]+).*$"
  is_range <- grepl(regex, x)
  num_income <- as.numeric(gsub(regex, "\\1", x[is_range]))
  num_income <- trunc(num_income / 5000) * 5000
  x[is_range] <- paste0("Gt $", num_income)
  x
}
fct_count(gss_cat$rincome)
convert_income(levels(gss_cat$rincome))
rincome2 <- fct_relabel(gss_cat$rincome, convert_income)
fct_count(rincome2)

Run the code above in your browser using DataLab