这应该很容易,但我希望找出如何返回包含一个元素的列表的索引。例如,在下面的列表中,假设我想找到所有以“a”为元素的索引。我想要一个函数来返回索引 1。
> x = list(c("a", "b"), "c")
> x
[[1]]
[1] "a" "b"
[[2]]
[1] "c"
> which(x=="a")
integer(0)
当然,which() 在这里不起作用。任何帮助将不胜感激!
最佳答案
您需要遍历列表元素并检查每个集合中的元素。
sapply(x, function(e) is.element('a', e))
## [1] TRUE FALSE
which(sapply(x, function(e) is.element('a', e)))
## [1] 1
sapply
表达式返回一个逻辑向量,表示存在 a
列表的每个元素,which
返回该列表的索引TRUE
元素。
关于r - R 中列表的 which() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24098836/