繁体   English   中英

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

[英]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.vectormat1的第 3 列匹配的位置,例如:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM