Learn R Programming

matrixStats (version 0.12.2)

xUNDERSCOREOPUNDERSCOREy: Fast calculation of 'z <- x OP y' and 'z <- t(t(x) OP y)'

Description

Fast calculation of 'z <- x OP y' and 'z <- t(t(x) OP y)', where OP can be +, -, *, and /. For + and *, na.rm=TRUE will drop missing values first.

Usage

x_OP_y(x, y, OP, commute=FALSE, na.rm=FALSE)
 t_tx_OP_y(x, y, OP, commute=FALSE, na.rm=FALSE)

Arguments

x
y
A numeric vector of length L.
OP
A character specifying which operator to use.
commute
If TRUE, 'y OP x' ('t(y OP t(x))') is calculated, otherwise 'x OP y' ('t(t(x) OP y)').
na.rm
If TRUE, missing values are ignored, otherwise not.
...
Not used.

Value

Missing values

If na.rm=TRUE, then missing values are "dropped" before applying the operator to each pair of values. For instance, if x[1,1] is a missing value, then the result of x[1,1] + y[1] equals y[1]. If also y[1] is a missing value, then the result is a missing value. This only applies to additions and multiplications. For subtractions and divisions, argument na.rm is ignored.

Examples

Run this code
x <- matrix(c(1,2,3,NA,5,6), nrow=3, ncol=2)

# Add 'y' to each column
y <- 1:2
z0 <- x + y
z1 <- x_OP_y(x, y, OP="+")
print(z1)
stopifnot(all.equal(z1, z0))


# Add 'y' to each row
y <- 1:3
z0 <- t(t(x) + y)
z1 <- t_tx_OP_y(x, y, OP="+")
print(z1)
stopifnot(all.equal(z1, z0))

Run the code above in your browser using DataLab