Learn R Programming

sfsmisc (version 0.9-4)

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
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 DataLab