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 m is split along rows (i.e., dimension 1) and then concatenated. 2 means that m is split along columns (i.e., dimension 2) and then concatenated.

use.dimnames

logical vector of length 1 that specifies whether the dimnames of m should be used to create the names for the returned vector. If FALSE, the returned vector will have NULL names. If TRUE, see details.

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, sep is not used if use.dimnames = FALSE.

check

logical vector of length 1 specifying whether to check the structure of the input arguments. For example, check whether m is a matrix. This argument is available to allow flexibility in whether the user values informative error messages (TRUE) vs. computational efficiency (FALSE).

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)

[Package str2str version 1.0.0 Index]