如何检测向量是特定向量的子集?

时间:2014-11-09 17:32:15

标签: r vector set subset

我有两个这样的矢量(集):

first<-c(1,2,3,4,5)
second<-c(2,4,5)

如何检测second是否是first的子集?这有什么功能吗?

3 个答案:

答案 0 :(得分:10)

这是单程

> all(second %in% first)
[1] TRUE

答案 1 :(得分:7)

这是另一个

setequal(intersect(first, second), second)
## [1] TRUE

或者

all(is.element(second, first))
## [1] TRUE

答案 2 :(得分:-2)

如果数组元素的顺序很重要,则字符串转换可能会有所帮助:

ord_match <- function(x,y){
    m <- c(0,grep(paste0(x,collapse=""),
                  paste0(y,collapse=""), fixed = T))
    return(as.logical(m)[length(m)])
}