Skip to contents

Computes the statistical mode of a set of values. The mode is defined as the most frequent value, i.e. the value that is most likely to be sampled.

Usage

stat_mode(x, type = c("one", "all", "n"), rm_na = FALSE)

Arguments

x

An R object.

type

What the function should calculate.

  • "one": Return the mode of x. If multiple modes or no mode at all exists, NA is returned.

  • "all": Return all modes of x. If none exists (e.g. because all values of x are distinct), NA is returned.

  • "n": Return the number of modes of x.

rm_na

Ignore missing values in x. A logical scalar.

Value

If type = "n", the number of modes in x (an integer). Otherwise, the mode(s) of x or NA if none exist(s) (same type as x).

See also

The package modeest for more powerful mode estimation functions.

Other statistical computing / numeric functions: round_to(), safe_max(), safe_min(), safe_seq_len()

Examples

pal::stat_mode(c(rep(3L, times = 3), 1:9))
#> [1] 3
pal::stat_mode(c(1.5, 4, 9.9))
#> [1] NA

# if no mode exists, `NA` (of the same type as x) is returned
pal::stat_mode(letters)
#> [1] NA
pal::stat_mode(c(letters, "a"))
#> [1] "a"

# if multiple modes exist, `NA` is returned by default
pal::stat_mode(c(letters, "a", "b"))
#> [1] NA
# set `type = "all"` to return all modes instead
pal::stat_mode(c(letters, "a", "b"),
               type = "all")
#> [1] "a" "b"

# `NA` is treated as any other value by default
pal::stat_mode(c(letters, "a", NA_character_, NA_character_),
               type = "all")
#> [1] "a" NA 
# set `rm_na = TRUE` to ignore `NA` values
pal::stat_mode(c(letters, "a", NA_character_, NA_character_),
               type = "all",
               rm_na = TRUE)
#> [1] "a"