R: Array: make vector positions from array index

arrayIndex2vectorIndex {ff} | R Documentation

## Array: make vector positions from array index

### Description

Make vector positions from a (non-symmetric) array index respecting dim and dimorder

### Usage

    arrayIndex2vectorIndex(x, dim = NULL, dimorder = NULL, vw = NULL)

### Arguments

`x` | an n by m matrix with n m-dimensional array indices
`dim` | NULL or `dim`
`dimorder` | NULL or `dimorder`
`vw` | NULL or integer vector[3] or integer matrix[3,m], see details

### Details

The fastest rotating dimension is dim[dimorder[1]], then dim[dimorder[2]], and so forth.
The parameters 'x' and 'dim' may refer to a subarray of a larger array, in this case, the array indices 'x' are interpreted as 'vw[1,] + x' within the larger array 'as.integer(colSums(vw))'.

### Value

a vector of indices in `1:prod(dim)` (or `1:prod(colSums(vw))`)

### Author(s)

Jens Oehlschlägel

### See Also

`array2vector`, `vectorIndex2arrayIndex`

### Examples

      x <- matrix(1:12, 3, 4)
      x
      arrayIndex2vectorIndex(cbind(as.vector(row(x)), as.vector(col(x)))
      , dim=dim(x))
      arrayIndex2vectorIndex(cbind(as.vector(row(x)), as.vector(col(x)))
      , dim=dim(x), dimorder=2:1)
      matrix(1:30, 5, 6)
      arrayIndex2vectorIndex(cbind(as.vector(row(x)), as.vector(col(x)))
      , vw=rbind(c(0,1), c(3,4), c(2,1)))
      arrayIndex2vectorIndex(cbind(as.vector(row(x)), as.vector(col(x)))
      , vw=rbind(c(0,1), c(3,4), c(2,1)), dimorder=2:1)

[Package ff version 2.2-13 Index]