【问题标题】:Find sequences in vector that do not match a pattern在向量中查找与模式不匹配的序列
【发布时间】:2017-08-08 06:48:09
【问题描述】:

我想在向量中查找与模式不匹配的元素序列。 例如:

pattern <- c(1,2,3,4)
test <- c(5,4,3,6,1,2,3,4,5,3,3,2,1,2,3,4,6,3,7,5,1,2,3,6)

我想在“测试”中找到与出现这种情况的“模式”或索引不匹配的整个序列。 所以我想得到类似这样的结果:

> want
[[1]]
[1] 5 4 3 6

[[2]]
[1] 5 3 3 2

[[3]]
[1] 6 3 7 5 1 2 3 6 

或类似的东西:

> indexes
[1]  1  9 17

你知道怎么做吗?

【问题讨论】:

    标签: r


    【解决方案1】:

    一个选项是

    lapply(scan(text=gsub(paste(pattern,collapse=""), ",",
         paste(test, collapse="")), what="", sep=",", quiet = TRUE), 
         function(x) as.numeric(unlist(strsplit(x, ""))))
    #[[1]]
    #[1] 5 4 3 6
    
    #[[2]]
    #[1] 5 3 3 2
    
    #[[3]]
    #[1] 6 3 7 5 1 2 3 6
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      • 1970-01-01
      • 2013-10-19
      • 1970-01-01
      相关资源
      最近更新 更多