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]]