如何把一个向量变成一个矩阵在 R?

我有一个有49个数值的向量,我想用一个7x7的数值矩阵来代替。

是否有一些方便的自动转换语句,我可以使用,或者我必须做7个正确的向量子集分列分配到一个新的矩阵?我希望有类似于 c(myMatrix)的相反方法,当然,可以选择给出我想要的行和/或列的数量。

142196 次浏览

使用 matrix:

matrix(vec,nrow = 7,ncol = 7)

使用 matrix而不是像 Gavin 指出的那样简单地改变维度属性的一个好处是,您可以使用 matrix中的 byrow参数指定矩阵是由行填充还是由列填充。

矩阵实际上只是一个带有 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