用列值的数字向量子集数字矩阵

史蒂夫

这是一个简单的问题,但是我没有在档案中找到明确的解决方案。假设我有一个矩阵m:

m <- structure(c(2, 0, 1, 1, 0, 2, 2, 2, 2, 1, 0, 2, 2, 2, 1, 2, 0, 
            1, 0, 1, 0, 2, 2, 0, 1, 2, 2, 1, 2, 0, 2, 0, 1, 0, 2, 1, 2, 1, 
            0, 1, 0, 2, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 2, 1, 1, 1, 
            0, 2, 2, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 2, 0, 26, 18, 26, 18, 
            22, 21, 13, 22, 27, 20, 27, 24, 18, 21, 18, 22, 16, 22, 19, 15, 
            22, 27, 20, 20, 17), .Dim = c(25L, 4L), .Dimnames = list(NULL, 
                                                                     c("r", "s", "t", "u")))

并希望获取包含列u中某些值的向量的矩阵的子集:

vec <- c(20, 21, 22, 24, 26)

换句话说,选择包含那些值的行。有关如何操作的建议或解决方案的链接?

您可以使用which()和,%in%但只能直接使用%in%(非常感谢,并感谢@GKi):

#Code
newmat <- m[m[,'u'] %in% vec,]

输出:

      r s t  u
 [1,] 2 2 0 26
 [2,] 1 1 0 26
 [3,] 0 0 2 22
 [4,] 2 2 2 21
 [5,] 2 1 1 22
 [6,] 1 2 0 20
 [7,] 2 2 2 24
 [8,] 2 0 1 21
 [9,] 2 0 1 22
[10,] 1 0 1 22
[11,] 0 1 0 22
[12,] 2 0 0 20
[13,] 0 0 2 20

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章