Expand a matrix or a data.frame with zeros based on rownames matching
Expand a matrix or a data.frame with zeros based on rownames matching
For a given two-dimensional object with rownames and a character vector, add_zero produces a corresponding object whose rownames match the character vector, with zeros on the additional rows.
This function is an easy-to-use and reliable way to reintroduce non-responding units in the variance estimation process (after the non-response phase is taken into account).
add_zero(y, rownames, remove =TRUE)
Arguments
y: A (sparse) matrix or a data.frame. The object to add zeros to.
rownames: A character vector (other types are coerced to character). The character vector giving the rows of the produced object.
remove: Should rows of y whose name do not appear in the rownames argument be removed ? TRUE by default, a warning is shown when rows are removed.
Returns
A (sparse) matrix or data.frame depending on the type of y.
Examples
# Data generationset.seed(1)n <-10p <-2y <- matrix(1:(n*p), ncol = p, dimnames = list(sample(letters, n)))y[c(3,8,12)]<-NArownames <- letters
# Standard useadd_zero(y, rownames)# Use when rownames in y do not match# any element in the rownames argumentrownames(y)[1:3]<- toupper(rownames(y)[1:3])add_zero(y, rownames)add_zero(y, rownames, remove =FALSE)