Ich habe einen Vektor mit 49 numerischen Werten. Ich möchte stattdessen eine 7x7 numerische Matrix haben.
Gibt es eine bequeme automatische Konvertierungsanweisung, die ich verwenden kann, oder muss ich einer neuen Matrix 7 separate Spaltenzuweisungen der richtigen Vektor-Teilmengen vornehmen? Ich hoffe, dass es so etwas wie das Gegenteil von gibt c(myMatrix)
, mit der Option, die Anzahl der Zeilen und / oder Spalten anzugeben , die ich natürlich haben möchte.
matrix
. (Gavins Lösung ist jedoch wenigermatrix
.Antworten:
Verwenden Sie einfach
matrix
:matrix(vec,nrow = 7,ncol = 7)
Ein Vorteil der Verwendung
matrix
und nicht nur der Änderung des Dimensionsattributs, wie Gavin betont, besteht darin, dass Sie mithilfe desbyrow
Arguments in angeben können, ob die Matrix durch Zeilen oder Spalten gefüllt istmatrix
.quelle
Eine Matrix ist eigentlich nur ein Vektor mit einem
dim
Attribut (für die Dimensionen). Sie könnenvec
derdim()
Funktion also Dimensionen hinzufügen und erhaltenvec
dann eine Matrix:vec <- 1:49 dim(vec) <- c(7, 7) ## (rows, cols) vec > vec <- 1:49 > dim(vec) <- c(7, 7) ## (rows, cols) > vec [,1] [,2] [,3] [,4] [,5] [,6] [,7] [1,] 1 8 15 22 29 36 43 [2,] 2 9 16 23 30 37 44 [3,] 3 10 17 24 31 38 45 [4,] 4 11 18 25 32 39 46 [5,] 5 12 19 26 33 40 47 [6,] 6 13 20 27 34 41 48 [7,] 7 14 21 28 35 42 49
quelle