m2v {str2str} | R Documentation |
Matrix to (Atomic) Vector
Description
m2v
converts a matrix to a (atomic) vector. The benefit of m2v
over as.vector
or c
is that 1) the vector can be formed along rows
as well as columns and 2) the dimnames from m
can be used for the names of
the returned vector.
Usage
m2v(m, along = 2, use.dimnames = TRUE, sep = "_", check = TRUE)
Arguments
m |
matrix |
along |
numeric vector of length one that is equal to either 1 or 2.
1 means that |
use.dimnames |
logical vector of length 1 that specifies whether the dimnames
of |
sep |
character vector of length 1 specifying the string that will separate
the rownames and colnames in the naming scheme of the return object. Note, |
check |
logical vector of length 1 specifying whether to check the structure
of the input arguments. For example, check whether |
Details
If use.dimnames
= TRUE, then each element's name will be analogous to
paste(rownames(m)[i], colnames(m)[j], sep = sep)
. If m
does not
have rownames and/or colnames, then they will be replaced by dimension positions.
This is also true when m
has only one row *and* one column. The exception
is when m
has either a single row *or* single column. In these cases,
only the non-single dimension's names will be used. If m
has one row,
then the names of the returned vector will be colnames(m)
. If m
has one column, then the names of the returned vector will be rownames(m)
.
Again, if m
does not have rownames and/or colnames, then they will be
replaced by dimension positions.
Value
(atomic) vector of length = length(m)
where the order of elements
from m
has been determined by along
and the names determined by
the use.dimnames
, dimnames(m)
, and sep
. See details for when
use.dimnames
= TRUE.
Examples
# general matrix
mtcars2 <- as.matrix(mtcars, rownames.force = TRUE) # to make sure dimnames stay in the example
m2v(mtcars2) # default
m2v(m = mtcars2, along = 1) # concatenate along rows
m2v(m = mtcars2, sep = ".") # change the sep of the rownames(m) and colnames(m)
m2v(m = `dimnames<-`(mtcars2, list(NULL, NULL))) # use dimension positions as dimnames
m2v(m = mtcars2, use.dimnames = FALSE) # return object has no names
# one row/column matrix
one_row <- mtcars2[1,, drop = FALSE]
m2v(one_row)
one_col <- mtcars2[, 1, drop = FALSE]
m2v(one_col)
one_all <- mtcars2[1,1, drop = FALSE]
m2v(one_all)
m2v(one_all, use.dimnames = FALSE)