我有一个由49个数字值组成的向量,我想要得到一个7x7的数字矩阵。请问是否有一些方便的自动转换语句可以使用,还是说我必须对正确的向量子集进行7个单独的列赋值来创建一个新的矩阵?我希望有一种类似于 c(myMatrix) 的相反操作,当然需要给出我想要拥有的行数和/或列数的选项。
只需使用matrix
:
matrix(vec,nrow = 7,ncol = 7)
使用matrix
的一个优势是,你可以使用matrix
中的byrow
参数指定矩阵是按行还是按列填充,而不仅仅是像Gavin所指出的那样更改维度属性。
矩阵实际上就是一个带有dim
属性的向量,因此您可以使用dim()
函数为vec
添加维度,然后vec
就成为了矩阵:
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
matrix
。(尽管Gavin的解决方案不太容易发现。) - joranmatrix
函数。 - joran