在向量中查找与模式不匹配的序列
问题描述:
我想查找向量中与模式不匹配的元素序列。 例如:在向量中查找与模式不匹配的序列
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
你有一个想法如何做到这一点?
答
一种选择是
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