如何将矢量转换为R中的矩阵?

时间:2013-01-30 22:19:48

标签: r vector matrix

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

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

2 个答案:

答案 0 :(得分:63)

只需使用matrix

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

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

答案 1 :(得分:41)

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