rowWeightedMedians.matrix {matrixStats} | R Documentation |
Calculates the weighted medians for each row (column) in a matrix.
## S3 method for class 'matrix': rowWeightedMedians(x, w=NULL, na.rm=FALSE, ...) ## S3 method for class 'matrix': colWeightedMedians(x, w=NULL, na.rm=FALSE, ...)
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 . |
The implementations of these methods are optimized for both speed
and memory.
If no weights are given, the corresponding
rowMeans()
/colMeans()
are used, respectively.
Returns a numeric
vector
of length N (K).
Henrik Bengtsson (http://www.braju.com/R/)
Internally, weightedMedian
of aroma.light
is used.
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)) }