@capplyranks |

Reorder the rows of a matrix using a vector of ranks.

Syntax: @capplyranks(m, v[, n])

m: matrix, vector

v: vector

n: (optional) integer

Return: matrix, vector

Apply (a column of) row ranks in the vector v to reorder the rows of a matrix m using the ranks.

• v should contain unique integers from 1 to the number of rows of m.

• If the optional argument n is specified, only the rows in column n will be reordered.

Examples

vector v1 = @ranks(m1.col(4), "a", "i")

matrix m2 = @capplyranks(m1, v1)

reorders the rows of the matrix M1 using the ranks in V1. Note that you may use the @ranks function to obtain the ranks of a vector, but must obtain unique integer ranking for data with ties through use of the “i” or “r” option in @ranks.

matrix m3 = @cappyranks(m1, v1, 3)

reorders only the rows of column 3 of M1.

Cross-references