75

我有一个包含 49 个数值的向量。我想要一个 7x7 数字矩阵。

我可以使用某种方便的自动转换语句,还是我必须将正确的向量子集的 7 个单独的列分配给一个新矩阵?我希望有类似的东西,当然c(myMatrix)可以选择给出我想要的行数和/或列数。

4

2 回答 2

85

只需使用matrix

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

正如 Gavin 指出的那样,使用而不是简单地更改维度属性的一个优点是,您可以使用in 中的参数matrix指定矩阵是按行还是按列填充。byrowmatrix

于 2013-01-30T22:20:41.920 回答
49

矩阵实际上只是一个具有dim属性的向量(对于维度)。因此,您可以vec使用该dim()函数添加维度,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
于 2013-01-30T22:24:12.503 回答