说我有一个清单
> foo
[[1]]
[1] TRUE
[[2]]
[1] TRUE
[[3]]
[1] FALSE
[[4]]
[1] TRUE
如何找到哪些值返回TRUE,以便得到类似
的列表[1] 1 2 4
谢谢!
答案 0 :(得分:4)
您需要做的就是取消列表并询问哪些是正确的。
which(unlist(foo))
> foo <- list(TRUE, TRUE, FALSE, TRUE)
> which(unlist(foo))
[1] 1 2 4
@Per评论:
如果您不确定所有元素属于同一类型,您还可以执行以下操作: 哪个(foo == TRUE)
就个人而言,我更倾向于隐含地抛出错误,在我看来,如果我对所有元素进行查询,我认为每个元素都是可比较的。但是,这种担忧是有效的。
答案 1 :(得分:2)
正如我之前的评论,这是一个(更强大的)解决方案:
which(foo == TRUE)
[1] 1 2 4