identize_byname: Named identity matrix or vector

View source: R/Unary.R

identize_bynameR Documentation

Named identity matrix or vector

Description

Creates an identity matrix (I) or vector (i) of same size and with same names and same row and column types as a.

Usage

identize_byname(a, margin = c(1, 2))

Arguments

a

the matrix whose names and dimensions are to be preserved in an identity matrix or vector

margin

determines whether an identity vector or matrix is returned. See details.

Details

Behaviour for different values of margin are as follows:

  • If margin = 1, makes a column matrix filled with 1s. Row names and type are taken from row names and type of a. Column name and type are same as column type of a.

  • If margin = 2, make a row matrix filled with 1s. Column names and type are taken from column name and type of a. Row name and type are same as row type of a.

  • If list(c(1,2)) (the default), make an identity matrix with 1s on the diagonal. Row and column names are sorted on output.

Value

An identity matrix or vector.

Examples

M <- matrix(1:16, ncol = 4, dimnames=list(c(paste0("i", 1:4)), paste0("c", 1:4))) %>%
  setrowtype("Industries") %>% setcoltype("Commodities")
identize_byname(M)
identize_byname(M, margin = c(1,2))
identize_byname(M, margin = 1)
identize_byname(M, margin = 2)
N <- matrix(c(-21, -12, -21, -10), ncol = 2, dimnames = list(c("b", "a"), c("b", "a"))) %>%
  setrowtype("Industries") %>% setcoltype("Commodities")
identize_byname(N)
# This also works with lists
identize_byname(list(M, M))

MatthewHeun/byname documentation built on Feb. 17, 2024, 4:51 p.m.