这应该很容易,但是我希望找出如何返回包含一个元素的列表的索引。例如,在下面的列表中,假设我要查找所有以“ 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()在这里不起作用。任何帮助,将不胜感激!
您需要遍历列表元素并检查每个集合中的元素。的
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元素的索引。