| transform_if | R Documentation |
The transform_if() function transforms an object x,
based on the logical result (TRUE, FALSE, NA)
of condition function cond(x) or logical vector cond,
such that:
For every value where cond(x)==TRUE / cond==TRUE,
function yes(x) is run or scalar yes is returned.
For every value where cond(x)==FALSE / cond==FALSE,
function no(x) is run or scalar no is returned.
For every value where cond(x)==NA / cond==NA,
function other(x) is run or scalar other is returned.
For a more ifelse-like function where
yes, no, and other are vectors,
see kit::iif.
transform_if(x, cond, yes = function(x) x, no = function(x) x, other = NA)
x |
a vector, matrix, or array. |
cond |
either an object of class |
yes |
the (possibly anonymous) transformation function to use
when function |
no |
the (possibly anonymous) transformation function to use
when function |
other |
the (possibly anonymous) transformation function to use
when function |
Be careful with coercion! For example the following code:
x <- c("a", "b")
transform_if(x, \(x) x == "a", as.numeric, as.logical)
returns:
[1] NA NA
due to the same character vector being given 2 incompatible classes.
The transformed vector, matrix, or array (attributes are conserved).
tinycodet_dry
x <- c(-10:9, NA, NA)
object <- matrix(x, ncol = 2)
attr(object, "helloworld") <- "helloworld"
print(object)
y <- 0
z <- 1000
object |> transform_if(\(x) x > y, log, \(x) x^2, \(x) -z)
object |> transform_if(object > y, log, \(x) x^2, -z) # same as previous line
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.