Skip to contents

This is an enhanced version of base::cut() that allows a custom formatting to be applied to the values.

Usage

cut_format(
  x,
  breaks,
  include.lowest = FALSE,
  right = TRUE,
  ordered_result = FALSE,
  ...,
  format_fun = format,
  sep = ", ",
  paren = c("(", "[", ")", "]")
)

Arguments

x

a numeric vector which is to be converted to a factor by cutting.

breaks

[numeric]
A vector of two or more unique cut points

include.lowest

logical, indicating if an ‘x[i]’ equal to the lowest (or highest, for right = FALSE) ‘breaks’ value should be included.

right

logical, indicating if the intervals should be closed on the right (and open on the left) or vice versa.

ordered_result

logical: should the result be an ordered factor?

...

Passed to cut()

format_fun

[function(x): character]
A vectorized function that performs the desired formatting. Default: base::format()

sep

[character(1)]
The separator between lower and upper end of the interval. Default: ", "

paren

[character(4)]
Opening and closing parentheses in two variants. Default: c("(", "[", ")", "]")

Examples

cut_format(runif(10), seq(0, 1, by = 0.25), format_fun = function(x) paste(x * 100, "%"))
#>  [1] (0 %, 25 %]   (75 %, 100 %] (50 %, 75 %]  (0 %, 25 %]   (0 %, 25 %]  
#>  [6] (25 %, 50 %]  (25 %, 50 %]  (25 %, 50 %]  (50 %, 75 %]  (75 %, 100 %]
#> Levels: (0 %, 25 %] (25 %, 50 %] (50 %, 75 %] (75 %, 100 %]
cut_format(runif(10), seq(0, 1, by = 0.25), paren = c("<", "{", ">", "}"))
#>  [1] <0.75, 1.00} <0.00, 0.25} <0.00, 0.25} <0.25, 0.50} <0.25, 0.50}
#>  [6] <0.00, 0.25} <0.25, 0.50} <0.00, 0.25} <0.25, 0.50} <0.75, 1.00}
#> Levels: <0.00, 0.25} <0.25, 0.50} <0.50, 0.75} <0.75, 1.00}