23

假设我在 R 中有一个向量,如下所示:

d<-seq(1,100)

我想将此向量重塑为 10x10 矩阵,以便我将拥有以下数据:

[,1]  [,2]  [,3]  ..  [,10]   
  1      2    3   ..   10
  11    12   13   ..   20
  21    22   23   ..   30
  ..
  91    92   93    ..  100

我尝试使用重塑功能,但它没有用。有人可以帮忙吗?

4

2 回答 2

50

你可以做

dim(d) <- c(10, 10)
d <- t(d)

或者

d <- matrix(d, nrow = 10, byrow = TRUE)
于 2013-07-19T18:17:02.840 回答
2

如果要将预定义列表转换​​为矩阵(例如 5*4 矩阵),请执行

yourMatrix <- matrix(unlist(yourList), nrow = 5, ncol = 4)

值得注意的是,矩阵是按列创建的,这意味着您的数据将按列填充到矩阵中。因此,如果您想要由行创建的矩阵,只需使用t(),例如

yourMatrix <- matrix(unlist(yourList), nrow = 4, ncol = 5)  # exchanges the cols and rows
yourMatrix <- t(yourMatrix)  # matrix transpose
于 2018-06-23T03:16:59.420 回答