Perform a Yeo-Johnson Transformation and center/scale a vector to
attempt normalization

```
yeojohnson(x, eps = 0.001, standardize = TRUE, ...)
# S3 method for yeojohnson
predict(object, newdata = NULL, inverse = FALSE, ...)
# S3 method for yeojohnson
print(x, ...)
```

## Arguments

- x
A vector to normalize with Yeo-Johnson

- eps
A value to compare lambda against to see if it is equal to zero

- standardize
If TRUE, the transformed values are also centered and
scaled, such that the transformation attempts a standard normal

- ...
Additional arguments that can be passed to the estimation of the
lambda parameter (lower, upper)

- object
an object of class 'yeojohnson'

- newdata
a vector of data to be (reverse) transformed

- inverse
if TRUE, performs reverse transformation

## Value

A list of class `yeojohnson`

with elements

- x.t
transformed original data

- x
original data

- mean
mean after transformation but prior to standardization

- sd
sd after transformation but prior to standardization

- lambda
estimated lambda value for skew transformation

- n
number of nonmissing observations

- norm_stat
Pearson's P / degrees of freedom

- standardize
Was the transformation standardized

The `predict`

function returns the numeric value of the transformation
performed on new data, and allows for the inverse transformation as well.

## Details

`yeojohnson`

estimates the optimal value of lambda for the
Yeo-Johnson transformation. This transformation can be performed on new
data, and inverted, via the `predict`

function.

The Yeo-Johnson is similar to the Box-Cox method, however it allows for the
transformation of nonpositive data as well. The `step_YeoJohnson`

function in the `recipes`

package is another useful resource (see
references).

## References

Yeo, I. K., & Johnson, R. A. (2000). A new family of power
transformations to improve normality or symmetry. Biometrika.

Max Kuhn and Hadley Wickham (2017). recipes: Preprocessing Tools to Create
Design Matrices. R package version 0.1.0.9000.
https://github.com/topepo/recipes

## Examples

```
x <- rgamma(100, 1, 1)
yeojohnson_obj <- yeojohnson(x)
yeojohnson_obj
#> Standardized Yeo-Johnson Transformation with 100 nonmissing obs.:
#> Estimated statistics:
#> - lambda = -0.6285334
#> - mean (before standardization) = 0.4860509
#> - sd (before standardization) = 0.2433941
p <- predict(yeojohnson_obj)
x2 <- predict(yeojohnson_obj, newdata = p, inverse = TRUE)
all.equal(x2, x)
#> [1] TRUE
```