Last chance! 50% off unlimited learning
Sale ends in
x
and y
as arguments and an optional matrix or vector of weights, w
,
return a weighted matrix cross-product, t(x) w y
.
If no weights are supplied, or the weights are constant, the function uses
crossprod
for speed.wcrossprod(x, y, w)
missing(y)
is taken to be the same matrix as x.
Vectors are promoted to single-column or single-row matrices, depending on the context.
x
and y
.
x
and y
.crossprod
set.seed(12345)
n <- 24
drop <- 4
sex <- sample(c("M", "F"), n, replace=TRUE)
x1 <- 1:n
x2 <- sample(1:n)
extra <- c( rep(0, n - drop), floor(15 + 10 * rnorm(drop)) )
y1 <- x1 + 3*x2 + 6*(sex=="M") + floor(10 * rnorm(n)) + extra
y2 <- x1 - 2*x2 - 8*(sex=="M") + floor(10 * rnorm(n)) + extra
# assign non-zero weights to 'dropped' obs
wt <- c(rep(1, n-drop), rep(.2,drop))
X <- cbind(x1, x2)
Y <- cbind(y1, y2)
wcrossprod(X)
wcrossprod(X, w=wt)
wcrossprod(X, Y)
wcrossprod(X, Y, w=wt)
wcrossprod(x1, y1)
wcrossprod(x1, y1, w=wt)
Run the code above in your browser using DataLab