Extracts one cell per row (column) from a matrix. The implementation is optimized for memory and speed.
An index vector of (maximum) length N (K)
specifying the columns (rows) to be extracted.
A vector indicating subset of rows to
operate over. If NULL, no subsetting is done.
An integer vector of
length two specifying the dimension of x, also when not a
matrix. Comment: The reason for this argument
being named with a period at the end is purely technical (we get a run-time
error if we try to name it dim).
Not used.
If TRUE (default), names
attributes of the result are set, otherwise not.
A vector indicating subset of columns to
operate over. If NULL, no subsetting is done.
Returns a vector of length N (K).
Matrix indexing to index elements in matrices and arrays,
cf. [().
x <- matrix(1:27, ncol = 3)
y <- rowCollapse(x, 1)
stopifnot(identical(y, x[, 1]))
y <- rowCollapse(x, 2)
stopifnot(identical(y, x[, 2]))
y <- rowCollapse(x, c(1, 1, 1, 1, 1, 3, 3, 3, 3))
stopifnot(identical(y, c(x[1:5, 1], x[6:9, 3])))
y <- rowCollapse(x, 1:3)
print(y)
#> [1] 1 11 21 4 14 24 7 17 27
y_truth <- c(x[1, 1], x[2, 2], x[3, 3], x[4, 1], x[5, 2],
x[6, 3], x[7, 1], x[8, 2], x[9, 3])
stopifnot(identical(y, y_truth))