[英]Extract rows from a matrix that meet a condition
我想从矩阵中提取行,其中 Mat1 的第 3 列和子集.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)
output:
mat2 = mat1[c(1,2,6,10),]
我希望能够为具有 1000 行的矩阵执行此操作,而无需指定要单独提取的行。 我特意设置了subset.vector 来包含一个不在Mat1 中的元素。 我还确保它的尺寸更小。
您可以使用%in%
查看subset.vector
与mat1
的第 3 列匹配的位置,例如:
identical(mat2, mat1[mat1[,3] %in% subset.vector,])
#[1] TRUE
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.