R:向量到矩阵-将一维向量索引转换为二维矩阵索引?

7gyucuyw  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(144)

假设我有一个向量:

myVector <- c(1,2,3,4,1,2,3,4,1,2,3,4)

出于某种原因,比如说,向量中的索引9(值为1)对我来说很重要:

> myVector[9]
[1] 1

出于另一个原因,我想把这个向量做成一个6x2的矩阵(6行2列)。

> myMatrix <- matrix(myVector, nrow = 6, ncol = 2)  # Only either nrow or ncol argument is actually required.
> myMatrix
     [,1] [,2]
[1,]    1    3
[2,]    2    4
[3,]    3    1
[4,]    4    2
[5,]    1    3
[6,]    2    4

现在我想知道我的向量索引9在这个新矩阵中的位置,我怎么得到这个信息?
当然,在本例中我可以看到它是第3行和第2列,但是我一般如何知道转换的参数(矩阵中的行数和列数)取我的原始索引的位置呢?

np8igboo

np8igboo1#

您正在创建的矩阵仍然包含构建它所基于的向量,因此索引应该仍然有效。

myVector <- c(1,2,3,4,1,2,3,4,1,2,3,4)
myMatrix <- matrix(myVector, nrow = 6, ncol = 2)
# check pos 9
myMatrix[9] # 1
myVector[9] # 1
# check all positions:
myMatrix==myVector # all true

# or manually:
for (i in seq_along(myVector)) {
  print(myMatrix[i]==myVector[i])
}

相关问题