R: Drop dimensions of an array object

adrop {abind} | R Documentation

## Drop dimensions of an array object

### Description

Drop degenerate dimensions of an array object. Offers less automaticity and more control than the base `drop()` function. `adrop()` is a S3 generic, with one method, `adrop.default`, supplied in the `abind` package.

### Usage

    adrop(x, drop = TRUE, named.vector = TRUE, one.d.array = FALSE, ...)

### Arguments

`x` | An array (including a matrix)
`drop` | A logical or numeric vector describing exactly which dimensions to drop. It is intended that this argument be supplied always. The default is very rarely useful (`drop=TRUE` means drop the first dimension of a 1-d array).
`named.vector` | Optional, defaults to `TRUE`. Controls whether a vector result has names derived from the `dimnames` of `x`.
`one.d.array` | Optional, defaults to `FALSE`. If `TRUE`, a one-dimensional array result will be an object with a `dim` attribute of length 1, and possibly a `dimnames` attribute. If `FALSE`, a one-dimensional result will be a vector object (named if `named.vector==TRUE`).
`...` | There are no additional arguments allowed for `adrop.default` but other methods may use them.

### Details

Dimensions can only be dropped if their extent is one, i.e., dimension `i` of array `x` can be dropped only if `dim(x)[i]==1`. It is an error to request `adrop` to drop a dimension whose extent is not 1.

A 1-d array can be converted to a named vector by supplying `drop=NULL` (which means drop no dimensions, and return a 1-d array result as a named vector).

### Value

If `x` is an object with a `dim` attribute (e.g., a matrix or `array`), then `adrop` returns an object like `x`, but with the requested extents of length one removed. Any accompanying `dimnames` attribute is adjusted and returned with `x`.

### Author(s)

Tony Plate tplate@acm.org

### See Also

`abind`

### Examples

    x <- array(1:24,dim=c(2,3,4),dimnames=list(letters[1:2],LETTERS[1:3],letters[23:26]))
    adrop(x[1,,,drop=FALSE],drop=1)
    adrop(x[,1,,drop=FALSE],drop=2)
    adrop(x[,,1,drop=FALSE],drop=3)
    adrop(x[1,1,1,drop=FALSE],drop=1)
    adrop(x[1,1,1,drop=FALSE],drop=2)
    adrop(x[1,1,1,drop=FALSE],drop=3)
    adrop(x[1,1,1,drop=FALSE],drop=1:2)
    adrop(x[1,1,1,drop=FALSE],drop=1:2,one.d=TRUE)
    adrop(x[1,1,1,drop=FALSE],drop=1:2,named=FALSE)
    dim(adrop(x[1,1,1,drop=FALSE],drop=1:2,one.d=TRUE))
    dimnames(adrop(x[1,1,1,drop=FALSE],drop=1:2,one.d=TRUE))
    names(adrop(x[1,1,1,drop=FALSE],drop=1:2,one.d=TRUE))
    dim(adrop(x[1,1,1,drop=FALSE],drop=1:2))
    dimnames(adrop(x[1,1,1,drop=FALSE],drop=1:2))
    names(adrop(x[1,1,1,drop=FALSE],drop=1:2))

[Package abind version 1.4-5 Index]