Some Further Row and Column Functions
The function rowMeansx
returns weighted row means;
the function colMax
returns column maxima;
the function rowProd
returns the product of each row;
the function quadratic
calculates a quadratic form
the function SelfDivByRow
devides each column by a scalar;
the function dotXV
calculates columnwise the dot product;
rowMeansx(x, weight=NULL) colMax(x) rowProd(x) SelfDivByRow(x, v) quadratic(x, v) dotXV(x, w)
x |
numerical (or logical) matrix |
v |
vector whose length equals the number of columns of |
w |
vector whose length equals the number of rows of |
weight |
numerical or logical vector of length |
quadratic(v,x)
calculates the quadratic form v^\top x v;
The matrix x
must be squared.
rowMeansx
returns a vector of lengthnrow(x)
.
colMax
returns a vector of length ncol(x)
.
rowProd
returns a vector of length nrow(x)
.
quadratic
returns a scalar.
SelfDivByRow
returns a matrix of same size as x
.
dotXV
returns a matrix of same size as x
.
Martin Schlather, schlather@math.uni-mannheim.de, http://ms.math.uni-mannheim.de
c <- if (interactive()) 10000 else 10 r <- if (interactive()) 20000 else 20 M <- matrix(nc = r, nr=r, 1:(c * r)) ## unweighted means, compare to rowMeans print(system.time(m1 <- rowMeans(M))) print(system.time(m2 <- rowMeansx(M))) stopifnot(all.equal(m1, m2)) ## weighted row means, compare to rowMeans W <- 1 / (ncol(M) : 1) print(system.time({M0 <- t(W * t(M)); m1 <- rowMeans(M0)})) print(system.time(m2 <- rowMeansx(M, W))) stopifnot(all.equal(m1, m2)) print(system.time(m1 <- apply(M, 2, max))) print(system.time(m2 <- colMax(M))) stopifnot(m1 == m2)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.