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