rowWeightedMedians.matrix {matrixStats}R Documentation

Calculates the weighted medians for each row (column) in a matrix

Description

Calculates the weighted medians for each row (column) in a matrix.

Usage

 ## S3 method for class 'matrix':
 rowWeightedMedians(x, w=NULL, na.rm=FALSE, ...)
 ## S3 method for class 'matrix':
 colWeightedMedians(x, w=NULL, na.rm=FALSE, ...)

Arguments

x A numeric NxK matrix.
w A numeric vector of length K (N).
na.rm If TRUE, missing values are excluded from the calculation, otherwise not.
... Additional arguments passed to weightedMedian.

Details

The implementations of these methods are optimized for both speed and memory. If no weights are given, the corresponding rowMeans()/colMeans() are used, respectively.

Value

Returns a numeric vector of length N (K).

Author(s)

Henrik Bengtsson (http://www.braju.com/R/)

See Also

Internally, weightedMedian of aroma.light is used.

Examples

if (require("aroma.light")) {
x <- matrix(rnorm(20), nrow=5, ncol=4)
print(x)

# Non-weighted row averages
xM0 <- rowMedians(x)
xM <- rowWeightedMedians(x)
stopifnot(all.equal(xM, xM0))

# Weighted row averages (uniform weights)
w <- rep(2.5, ncol(x))
xM <- rowWeightedMedians(x, w=w)
stopifnot(all.equal(xM, xM0))

# Weighted row averages (excluding some columns)
w <- c(1,1,0,1)
xM0 <- rowMedians(x[,(w == 1),drop=FALSE]);
xM <- rowWeightedMedians(x, w=w)
stopifnot(all.equal(xM, xM0))

# Weighted row averages (excluding some columns)
w <- c(0,1,0,0)
xM0 <- rowMedians(x[,(w == 1),drop=FALSE]);
xM <- rowWeightedMedians(x, w=w)
stopifnot(all.equal(xM, xM0))

# Weighted averages by rows and columns
w <- 1:4
xM1 <- rowWeightedMedians(x, w=w)
xM2 <- colWeightedMedians(t(x), w=w)
stopifnot(all.equal(xM2, xM1))

}

[Package matrixStats version 0.1.6 Index]