Skip to contents

ifelse(x > M, M, x) is the same as pmin(x, M), but harder to read and requires several passes over the vector.

Usage

ifelse_censor_linter()

Details

The same goes for other similar ways to censor a vector, e.g. ifelse(x <= M, x, M) is pmin(x, M), ifelse(x < m, m, x) is pmax(x, m), and ifelse(x >= m, x, m) is pmax(x, m).

See also

linters for a complete list of linters available in lintr.

Examples

# will produce lints
lint(
  text = "ifelse(5:1 < pi, 5:1, pi)",
  linters = ifelse_censor_linter()
)
#> <text>:1:1: warning: [ifelse_censor_linter] pmin(x, y) is preferable to ifelse(x < y, x, y).
#> ifelse(5:1 < pi, 5:1, pi)
#> ^~~~~~~~~~~~~~~~~~~~~~~~~

lint(
  text = "ifelse(x > 0, x, 0)",
  linters = ifelse_censor_linter()
)
#> <text>:1:1: warning: [ifelse_censor_linter] pmax(x, y) is preferable to ifelse(x > y, x, y).
#> ifelse(x > 0, x, 0)
#> ^~~~~~~~~~~~~~~~~~~

# okay
lint(
  text = "pmin(5:1, pi)",
  linters = ifelse_censor_linter()
)
#>  No lints found.

lint(
  text = "pmax(x, 0)",
  linters = ifelse_censor_linter()
)
#>  No lints found.