aaa4_tinycodet_dry {tinycodet} | R Documentation |
Overview of the 'tinycodet' "Don't Repeat Yourself" Functionality
Description
"Don't Repeat Yourself", sometimes abbreviated as "DRY", is the coding principle not to write unnecessarily repetitive code. To help in that effort, the 'tinycodet' R-package introduces a few functions:
The transform_if function
The subset_if operators and the in-place unreal modifier operator.
See Also
Examples
object <- matrix(c(-9:8, NA, NA) , ncol=2)
# in base R:
ifelse( # repetitive, and gives unnecessary warning
is.na(object > 0), -Inf,
ifelse(
object > 0, log(object), object^2
)
)
mtcars$mpg[mtcars$cyl>6] <- (mtcars$mpg[mtcars$cyl>6])^2 # long
# with tinycodet:
object |> transform_if(\(x) x > 0, log, \(x) x^2, \(x) -Inf) # compact & no warning
mtcars$mpg[mtcars$cyl > 6] %:=% \(x) x^2 # short
[Package tinycodet version 0.5.3 Index]