Gegeben ein Vektor möchte ich eine quadratische Matrix erstellen, wo Elemente des Vektors auf Diagonale sind und es Reihe-weise Cumsum von Elementen gibt.Berechnen reihenweise Matrix Cumsum aus Vektor
Beispiel Vektor:
vec <- c(1, 2, 3, 4)
Erforderliche Ausgabe:
[,1] [,2] [,3] [,4]
[1,] 1 3 6 10
[2,] 0 2 5 9
[3,] 0 0 3 7
[4,] 0 0 0 4
Nun, ich bin mit Doppel für Loop-Funktion:
diagSum <- function(vec) {
mat <- diag(vec)
for (i in seq(nrow(mat))) {
for (j in seq(i, ncol(mat))) {
if (j > i) {
mat[i, j] <- mat[i, j - 1] + mat[j, j]
}
}
}
mat
}
Was wäre R-Weg (Vermeidung von für Schleifen), dies zu tun?
Ha, Sie schneller mit lower.tri Lösung sind :) –