drop {base} | R Documentation |
Drop Redundant Extent Information
Description
Delete the dimensions of an array which have only one level.
Usage
drop(x)
Arguments
x |
an array (including a matrix). |
Value
If x
is an object with a dim
attribute (e.g., a matrix
or array
), then drop
returns an object like
x
, but with any extents of length one removed. Any
accompanying dimnames
attribute is adjusted and returned with
x
: if the result is a vector the names
are taken from
the dimnames
(if any). However, if the result is a vector
of length one, then it does not get names
unless exactly
one component of the dimnames
is non-NULL
, in which case
that component is used.
Array subsetting ([
) performs this reduction unless used
with drop = FALSE
, but sometimes it is useful to invoke
drop
directly.
See Also
drop1
which is used for dropping terms in models, and
droplevels
used for dropping unused levels from a factor
.
Examples
dim(drop(array(1:12, dim = c(1,3,1,1,2,1,2)))) # = 3 2 2
drop(1:3 %*% 2:4) # scalar product - w/o drop(.), would return 1x1 matrix
# Behavior when result is length-1 vector:
(x <- x1 <- x2 <- array(0, c(1L, 1L), list("a", "b")))
colnames(x1) <- rownames(x2) <- NULL
names(drop(x )) # NULL
names(drop(x1)) # "a"
names(drop(x2)) # "b"