morder {bigmemory} | R Documentation |
big.matrix'' and
matrix” objectsThe morder
function returns a permutation of row
indices which can be used to rearrange 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)
morderCols(x, rows, na.last = TRUE, decreasing = FALSE)
mpermute(x, order = NULL, cols = NULL, allow.duplicates = FALSE, ...)
mpermuteCols(x, order = NULL, rows = NULL, allow.duplicates = FALSE, ...)
x |
A |
cols |
The columns of |
na.last |
for controlling the treatment of |
decreasing |
logical. Should the sort order be increasing or decreasing? |
rows |
The rows of |
order |
A vector specifying the reordering of rows, i.e. the
result of a call to |
allow.duplicates |
ff |
... |
optional parameters to pass to |
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 specified 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]