normalize: Normalize a matrix/vector to sum to one (probability simplex)

Description Usage Arguments Value See Also Examples

View source: R/normalize.R

Description

normalize projects a vector or matrix onto the probability simplex.

If all entries (per row or column) get thresholded to 0 (since they are all negative to start with), then it sets the position of the maximum of x to 1 and leaves all other entries at 0.

Usage

1
normalize(x, byrow = TRUE, tol = 1e-06)

Arguments

x

a numeric matrix(like object).

byrow

logical; if TRUE rows are normalized; otherwise columns.

tol

a tolerance level to set values < tol to 0 (after an initial normalization). Default: tol=1e-6

Value

If x is a vector it returns the thresholded vector (see threshold) and normalized by its sum. If x is a matrix it works by column of by row (argument byrow).

See Also

threshold

Examples

1
2
3
4
5
print(normalize(c(1, 4, 2, 2, 10)))
print(normalize(c(-1, -2, -1)))
AA <- matrix(rnorm(12), ncol = 3)
print(normalize(AA, byrow = TRUE))
print(normalize(AA, byrow = FALSE))

Example output

[1] 0.05263158 0.21052632 0.10526316 0.10526316 0.52631579
[1] 1 0 0
          [,1]      [,2]      [,3]
[1,] 0.3659218 0.3326854 0.3013929
[2,] 0.5799565 0.4200435 0.0000000
[3,] 1.0000000 0.0000000 0.0000000
[4,] 0.0000000 0.8506573 0.1493427
           [,1]       [,2]      [,3]
[1,] 0.95711769 0.67284338 0.9197013
[2,] 0.04288231 0.02401487 0.0000000
[3,] 0.00000000 0.00000000 0.0000000
[4,] 0.00000000 0.30314175 0.0802987

LICORS documentation built on May 1, 2019, 10:13 p.m.