我有一个矩阵,希望使用两个条件快速子集化。1)列名与行名匹配,并且2)一个矩阵中的值为FALSE
m
[,1]
A 1
B 2
C 3
D 4
E 5
tf
E B A
[1,] FALSE FALSE TRUE
输出应该是
m2
[,1]
E 5
B 2
由于“ tf”只有一行,因此当我们通过取反来对逻辑矩阵进行子集化时,它会导致命名vector
为subset([
)的默认值为drop=TRUE
。names
从中提取vector
并将其用作行索引,以对'm'进行子集化。在这里,我们可以使用,drop=FALSE
因为'm'中只有一列。
m[names(tf[,!tf]), , drop=FALSE]
# [,1]
#E 5
#B 2
m <- matrix(1:5, nrow=5, 1, dimnames=list(LETTERS[1:5], NULL))
tf <- matrix(c(FALSE, FALSE, TRUE), ncol=3, dimnames=list(NULL, c("E", "B", "A")))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句