aaa4_tinycodet_dry: Overview of the 'tinycodet' "Don't Repeat Yourself"...

aaa4_tinycodet_dryR 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

  • Atomic type casting with names and dimensions preserved.

  • The subset_if operators and the in-place unreal modifier operator.

  • The general in-place (mathematical) modification operator.

See Also

tinycodet_help

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



tinycodet documentation built on Sept. 12, 2024, 7:03 a.m.