R: Translates matrix indices by rows into indices by columns

indexByRow {matrixStats} | R Documentation

## Translates matrix indices by rows into indices by columns

### Description

Translates matrix indices by rows into indices by columns.

### Usage

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

### 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.

### Value

Returns an `integer` `vector` of indices.

### 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(s)

Henrik Bengtsson

### Examples

    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))

[Package matrixStats version 0.61.0 Index]