# NOT RUN {
# Generating random data
set.seed(1)
n <- 100
H <- 5
y <- matrix(rnorm(2*n), nrow = n)
x <- matrix(rnorm(10*n), nrow = n)
by <- letters[sample(1:H, n, replace = TRUE)]
# Direct calculation
rescal(y, x)
# Calculation with pre-calculated data
precalc <- rescal(y = NULL, x)
rescal(y, precalc = precalc)
identical(rescal(y, x), rescal(y, precalc = precalc))
# Collinearity check
rescal(y, cbind(x, x[, 1]), collinearity.check = TRUE)
# Matrix::TsparseMatrix capability
require(Matrix)
X <- as(x, "TsparseMatrix")
Y <- as(y, "TsparseMatrix")
rescal(Y, X)
# by parameter for within by-groups calculation
rescal(Y, X, by = by)
identical(
rescal(Y, X, by = by)[by == "a", ]
, rescal(Y[by == "a", ], X[by == "a", ])
)
# }
Run the code above in your browser using DataLab