Bins a numeric vector x into bins specified by breaks. Values outside the range of breaks will be placed in the lowest or highest bin. Set labels = FALSE to return integer codes only, and explicit_na = TRUE for maximal synergy with the "collapse" package. Uses the logic of spatstat.utils::fastFindInterval() for equi-length bins.

fcut(x, breaks, labels = NULL, right = TRUE, explicit_na = FALSE)

Arguments

x

A numeric vector.

breaks

A monotonically increasing numeric vector of breaks.

labels

A character vector of length length(breaks) - 1 with bin labels. By default (NULL), the levels c("1", "2", ...) are used. Set to FALSE to return raw integer codes.

right

Right closed bins (TRUE, default) or not?

explicit_na

If TRUE, missing values are encoded by the bin value length(breaks), having NA as corresponding factor level. The factor will get the additional class "na.included".

Value

Binned version of x. Either a factor, or integer codes.

Examples

x <- c(NA, 1:10)
fcut(x, breaks = c(3, 5, 7))
#>  [1] <NA> 1    1    1    1    1    2    2    2    2    2   
#> Levels: 1 2
fcut(x, breaks = c(3, 5, 7), right = FALSE)
#>  [1] <NA> 1    1    1    1    2    2    2    2    2    2   
#> Levels: 1 2
fcut(x, breaks = c(3, 5, 7), labels = FALSE)
#>  [1] NA  1  1  1  1  1  2  2  2  2  2