R 在列表中搜索向量

R 在列表中搜索向量,r,list,search,vector,R,List,Search,Vector,这似乎是一个愚蠢的问题,但在花了一些时间寻找(简单的)解决方案后,我找不到它 我有一个向量列表: l <- list(c(1, 2), c(5, 10)) 但这又回来了 [1] FALSE FALSE 最后,我找到了以下解决方案: any(sapply(l, function(x) { all(x == c(1, 2)) })) 但它相当麻烦,所以我真的想知道这是否是最简单的选择。有没有更简单的方法来测试向量列表中的向量?因为您处理的是对象,=操作符并不理想。一个稍微简单的方法是:

这似乎是一个愚蠢的问题,但在花了一些时间寻找(简单的)解决方案后,我找不到它

我有一个向量列表:

l <- list(c(1, 2), c(5, 10))
但这又回来了

[1] FALSE FALSE
最后,我找到了以下解决方案:

any(sapply(l, function(x) { all(x == c(1, 2)) }))

但它相当麻烦,所以我真的想知道这是否是最简单的选择。有没有更简单的方法来测试向量列表中的向量?

因为您处理的是对象,
=
操作符并不理想。一个稍微简单的方法是:

any(sapply(l, identical, y=c(1,2)))
%运算符中的
%不起作用,因为它是对函数
match
的调用。它读取
l
作为向量。换句话说,它所做的是:

for(i in 1:length(c(1,2)))
c(1,2)[i]==l[[i]]

一旦你把它包装成一个函数,允许你搜索任何给定的向量,就不会太麻烦了。那么您唯一的问题就是考虑是否要使用类似于
isTRUE(all.equal())
idential
的东西。
for(i in 1:length(c(1,2)))
c(1,2)[i]==l[[i]]