从满足条件的矩阵中提取行

时间:2019-10-15 09:29:45

标签: r matrix subset

我想从矩阵中提取行,在该矩阵中Mat1的第三列和subset.vector之间有重叠。

问题设置:

mat1= data.frame(matrix(nrow=10, ncol =5))
mat1[,2:5] = rnorm(40,0,1)
mat1[,1] = c(1,3,4)
mat1[,3] = c(500,120,7,9,10,11,14,53,12,13)
mat1

subset.vector <- c(500,120, 11, 13, 15)

输出:

mat2 = mat1[c(1,2,6,10),]

我希望能够对具有1000行的矩阵执行此操作,而无需指定要单独提取的行。我特意设置了subset.vector以包括不在Mat1中的元素。我还确保它的尺寸较小。

1 个答案:

答案 0 :(得分:1)

您可以使用%in%来查看subset.vectormat1的第3列匹配的位置,例如:

identical(mat2, mat1[mat1[,3] %in% subset.vector,])
#[1] TRUE