balance_by_blocks {cuadramelo} | R Documentation |
Balance matrix by blocks
Description
Applies balance_matrix()
to equally-sized blocks that partition the
matrix either vertically or horizontally.
Usage
balance_by_blocks(Y, col_totals = NULL, row_totals = NULL, layout, L)
Arguments
Y |
Matrix to be balanced. |
col_totals |
Desired colSums for each block. See details. |
row_totals |
Desired rowSums for each block. See details. |
layout |
The blocks are distributed: 1 horizontally, 2 vertically. |
L |
Number of lines that a block encompasses. |
Details
When Y is composed of **vertically** stacked blocks, col_totals must be a matrix whose rows are the colSums for each block, and row_totals just a (vertical) vector.
When Y is composed of blocks arraged **horizontally**, col_totals is a (horizontal) vector, and row_totals is a matrix whose columns are the rowSums for each block.
Value
The balanced matrix.
Examples
set.seed(10)
Y <- (rnorm(32)*10) |> matrix(ncol = 2) |> round(3)
v <- aggregate(Y, by = list(rep(1:4, times = rep(4,4))), FUN = sum)[, -1] |>
round() |> as.matrix()
X <- balance_by_blocks(Y, v, layout = 2, L = 4)
U <- Y[5:8,] |> balance_matrix(v[2,])
X[5:8,] - U
[Package cuadramelo version 1.0.0 Index]