morder {bigmemory} | R Documentation |

## Ordering and Permuting functions for `big.matrix'' and `

matrix” objects

### Description

The `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.

### Usage

```
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, ...)
```

### Arguments

`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 |

### Details

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.

### Value

`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.

### Author(s)

Michael J. Kane bigmemoryauthors@gmail.com

### See Also

### Examples

```
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]
```

*bigmemory*version 4.6.4 Index]