Ich muss einen Vektor diagonal in eine Matrix an einer beliebigen Stelle einfügen. Ich weiß, wie man einen Vektor vertikal oder horizontal einfügt, aber ich kann es nicht diagonal tun.Wie fügt man Werte aus einem Vektor diagonal in eine Matrix in R ein?
ich habe:
A <- matrix(nrow=6,ncol=6)
b <- c(1:4)
das gewünschte Ergebnis (wenn ich den Vektor in der Position A[3,2]
eingefügt werden soll), wäre:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] NA NA NA NA NA NA
[2,] NA NA NA NA NA NA
[3,] NA 1 NA NA NA NA
[4,] NA NA 2 NA NA NA
[5,] NA NA NA 3 NA NA
[6,] NA NA NA NA 4 NA
Auch ich möchte in der Lage zu einfügen der Vektor diese Matrix zu erhalten (ausgehend von A[4,1]
):
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] NA NA NA 4 NA NA
[2,] NA NA 3 NA NA NA
[3,] NA 2 NA NA NA NA
[4,] 1 NA NA NA NA NA
[5,] NA NA NA NA NA NA
[6,] NA NA NA NA NA NA
Elegante Lösung! Hier ist die entsprechende Funktion: füllen <- Funktion (A, b, i, j, oben = FALSE) { k <- seq_along (b) - 1 # erstellen Sie einen Index A [cbind (i + ifelse (oben, - 1, 1) * k, j + k)] <- b zurück (A) } füllen (A, b, 3, 2) füllen (A, b, 4, 1, WAHR) –