| morder, mpermute {bigmemory} | R Documentation |
The morder function returns a permutation of row indices which can be used
to rearrangea an object
according to the values in the specified columns (a multi-column ordering).
The mpermute function actually
reorders the rows of a big.matrix or matrix based on
an order vector or a desired ordering on a set of columns.
morder(x, cols, na.last=TRUE, decreasing = FALSE) mpermute(x, order=NULL, cols=NULL, allow.duplicates=FALSE, ...)
x |
A big.matrix or matrix object with numeric values. |
cols |
The columns of x to get the ordering for or reorder on |
na.last |
for controlling the treatment of NAs. If
TRUE, missing values in the data are put last; if FALSE,
they are put first; if NA, they are removed. |
decreasing |
logical. Should the sort order be increasing or decreasing? |
order |
A vector specifying the reordering of rows, i.e. the result of a call to order or morder. |
allow.duplicates |
ff TRUE, allows a row to be dupicated in
the resulting big.matrix or matrix (i.e. in this case, order would not need to be a permutation of 1:nrow(x)). |
... |
optional parameters to pass to morder when cols is specified instead of just using order. |
The morder function behaves similar to order, returning
a permutation of 1:nrow(x) which rearranges objects according to the
values in the specified columns. However, morder takes
a big.matrix or an R matrix (with numeric type) and a set of
columns (cols) with which to determine the ordering; morder does
not incur the same memory overhead required by order, and runs more quickly.
The mpermute function changes the row ordering of a big.matrix
or matrix based on a vector order or an ordering based
on a set of columns specifed by cols. It should be noted that
this function has side-effects, that is x is changed when this
function is called.
morder returns an ordering vector.
mpermute returns nothing but does change the contents of x.
This type of a side-effect is generally frowned upon in R, but we “break”
the rules here to avoid memory overhead and improve performance.
Michael J. Kane <bigmemoryauthors@gmail.com>
m = matrix(as.double(as.matrix(iris)), nrow=nrow(iris)) morder(m, 1) order(m[,1]) m[order(m[,1]), 2] mpermute(m, cols=1) m[,2]