R中列表的which()函数

use*_*658 2 r text-mining

这应该很容易,但是我希望找出如何返回包含一个元素的列表的索引。例如,在下面的列表中,假设我要查找所有以“ a”为元素的索引。我想要一个函数返回索引1。

> x = list(c("a", "b"), "c")

> x
[[1]]
[1] "a" "b"

[[2]]
[1] "c"

> which(x=="a")

integer(0)
Run Code Online (Sandbox Code Playgroud)

当然,which()在这里不起作用。任何帮助,将不胜感激!

Mat*_*erg 5

您需要遍历列表元素并检查每个集合中的元素。的

sapply(x, function(e) is.element('a', e))
## [1]  TRUE FALSE
which(sapply(x, function(e) is.element('a', e)))
## [1] 1
Run Code Online (Sandbox Code Playgroud)

sapply表达式返回指示a列表中每个元素存在的逻辑向量,并which返回TRUE元素的索引。