Как рассчитать все элементы в XX ^ T в R? - PullRequest
0 голосов
/ 05 апреля 2020

Пусть X - матрица с n строками и p столбцами. Я хочу вычислить все p умноженные на p матрицы, полученные умножением строк на X, умноженных на транспонированные из тех же строк. Это первая матрица

X[1,]%*%t(X[1,])

Я хочу избежать для l oop, поэтому мне интересно, как получить n (p раз p) матриц, связанных с

X[i,]%*%t(X[i,])

с более прямой командой, такой как apply или sweep. Извините, я просто не могу понять, как это сделать.

1 Ответ

1 голос
/ 05 апреля 2020

Вы должны использовать crossprod или tcrossprod для подобных операций (см. здесь ). В вашем случае

lapply(1:nrow(X), function(i) tcrossprod(X[i,]))
...