簡體   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