2017-08-08 9 views
1

パターンに一致しないベクトルの要素のシーケンスを探したい。 例えば:パターンに一致しないベクトルのシーケンスを見つける

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 

あなたがこれを行うにはどのようなアイデアをお持ちですか?

答えて

2

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 
です
関連する問題