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, ...)
A big.matrix or matrix object with numeric values.
The columns of x to get the ordering for or reorder on
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.
logical. Should the sort order be increasing or decreasing?
The rows of x to get the ordering for or reorder on
A vector specifying the reordering of rows, i.e. the
result of a call to order or morder.
ff TRUE, allows a row to be duplicated 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.
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.
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.
# NOT RUN {
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]
# }
Run the code above in your browser using DataLab