提问人:DOS 提问时间:1/26/2023 更新时间:1/26/2023 访问量:189
如何在 R 中切片矩阵并将生成的列向量保留为实际的列向量?[复制]
How to slice a matrix in R and keep the resulting column vector as an actual column vector indeed? [duplicate]
问:
我遇到的问题可以使用以下矩阵来说明:
b <- cbind(matrix(c(1, 0, 0), nrow = 3),
matrix(c(0, 0, 0), nrow = 3),
matrix(c(2, 0, 1), nrow = 3))
b
# [,1] [,2] [,3]
# [1,] 1 0 2
# [2,] 0 0 0
# [3,] 0 0 1
有时我需要像上面这样对矩阵进行切片,但是当切片只保留一列或一行时,生成的切片就不再是矩阵了。例如,当我对上面的矩阵 b 进行切片并保留最后一列和所有行时,就像在操作中一样
b[seq(3), c(3)]
我明白了
# [1] 2 0 1
但是,我希望得到以下结果:
# [,1]
# [1,] 2
# [2,] 0
# [3,] 1
获得上述结果的简单方法是什么?有没有如上所述返回结果的切片方法?
答:
2赞
PGSA
1/26/2023
#1
b[seq(3), c(3), drop = FALSE]
在这种情况下,可以简化为:
b[,3,drop = FALSE]
评论
b[i, j, drop = FALSE]
.另请参见。?Extract