在向量中查找多个元素的所有位置

Chr*_*ois 21 r vector r-faq

假设我有以下向量:

x <- c(8, 6, 9, 9, 7, 3, 2, 5, 5, 1, 6, 8, 5, 2, 9, 3, 5, 10, 8, 2)
Run Code Online (Sandbox Code Playgroud)

如何找到哪些元素是8或9?

Chr*_*ois 38

这是一种方法.首先,我得到x为8或9的索引.然后我们可以验证在那些索引处,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
Run Code Online (Sandbox Code Playgroud)

  • 但是,假设我正在寻找两个值的特定索引,而没有对它们的顺序进行排序。如果我要查找字母中Z和A的索引,如何得到结果“ 26,1”而不是“ 1,26”?_which(字母%in%c('z','a'))_ (2认同)

小智 9

您可以在|短时间内尝试操作员

which(x == 8 | x == 9)
Run Code Online (Sandbox Code Playgroud)