我想从矩阵中提取行,在该矩阵中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中的元素。我还确保它的尺寸较小。
答案 0 :(得分:1)
您可以使用%in%
来查看subset.vector
与mat1
的第3列匹配的位置,例如:
identical(mat2, mat1[mat1[,3] %in% subset.vector,])
#[1] TRUE