sfsmisc (version 1.1-5)

u.log: (Anti)Symmetric Log High-Transform

Description

Compute \(log()\) only for high values and keep low ones -- antisymmetrically such that u.log(x) is (once) continuously differentiable, it computes \(f(x) = x\) for \(|x| \le c\) and \(sign(x) c\cdot(1 + log(|x|/c))\) for \(|x| \ge c\).

Usage

u.log(x, c = 1)

Arguments

x

numeric vector to be transformed.

c

scalar, > 0

Value

numeric vector of same length as x.

Examples

Run this code
# NOT RUN {
curve(u.log, -3, 10); abline(h=0, v=0, col = "gray20", lty = 3)
curve(1 + log(x), .01,  add = TRUE, col= "brown") # simple log
curve(u.log(x,    2),   add = TRUE, col=2)
curve(u.log(x, c= 0.4), add = TRUE, col=4)
# }

Run the code above in your browser using DataCamp Workspace