Learn R Programming

matrixStats (version 1.4.1)

indexByRow: Translates matrix indices by rows into indices by columns

Description

Translates matrix indices by rows into indices by columns.

Usage

indexByRow(dim, idxs = NULL, ...)

Value

Returns an integer

vector of indices.

Arguments

dim

A numeric vector of length two specifying the length of the "template" matrix.

idxs

A vector indicating subset of elements to operate over. If NULL, no subsetting is done.

...

Not used.

Known limitations

The current implementation does not support long-vector indices, because both input and output indices are of type integers. This means that the indices in argument idxs can only be in range [1,2^31-1]. Using a greater value will be coerced to NA_integer_. Moreover, returned indices can only be in the same range [1,2^31-1].

Author

Henrik Bengtsson

Examples

Run this code
dim <- c(5, 4)
X <- matrix(NA_integer_, nrow = dim[1], ncol = dim[2])
Y <- t(X)
idxs <- seq_along(X)

# Assign by columns
X[idxs] <- idxs
print(X)

# Assign by rows
Y[indexByRow(dim(Y), idxs)] <- idxs
print(Y)

stopifnot(X == t(Y))

Run the code above in your browser using DataLab