在向量中查找多个元素
假设我有以下vector:
> x <- sample(1:10,20,replace=TRUE) > x [1] 8 6 9 9 7 3 2 5 5 1 6 8 5 2 9 3 5 10 8 2
我怎样才能find哪些元素是8或9?
这是做到这一点的一种方法。 首先我得到x是8或9的指数。然后我们可以validation在这些指数中,x的确是8和9。
> inds <- which(x %in% c(8,9)) > inds [1] 1 3 4 12 15 19 > x[inds] [1] 8 9 9 8 9 8
你可以尝试|
运营商在短期条件
which(x == 8 | x == 9)
grepl
可能是一个有用的function。 请注意,在R 2.9.0及更高版本中grepl
出现grepl
。 关于grepl
一个grepl
就是它返回一个与x
相同长度的逻辑向量。
grepl(8, x) [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [13] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE grepl(9, x) [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE [13] FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE
为了达到你的答案,你可以做到以下几点
grepl(8,x) | grepl(9,x)
另外,如果你不需要使用索引,但只是你可以做的元素
> x <- sample(1:10,20,replace=TRUE) > x [1] 6 4 7 2 9 3 3 5 4 7 2 1 4 9 1 6 10 4 3 10 > x[8<=x & x<=9] [1] 9 9