Скажем Я массив целых чисел, например:Как эффективно находить последовательность значений в R и работать на них
p<-c(0,1,0,0,0,1,1,0,1,0)
Мне нужен эффективный способ, чтобы найти все последовательности максимум два " 0" . Я сделал:
j<-2
while (j<length(p)) {
if(p[j-1]==1&&p[j]==0&&p[j+1]==1){
#do stuff
j<-j+2
} else if (p[j-1]==1&&p[j]==0&&p[j+1]==0&&p[j+2]==1){
#do stuff
j<-j+3
} else {
j<-j+1
}
}
, которая работает должным образом, но, так как я работаю с огромным вектором в реальном случае, я задаюсь вопросом, есть ли разумный способ сделать это.
См. Также 'rle'. – Gregor
что вы ожидаете? в вашем примере нет примеров «последовательностей максимум два» 0 ». – SymbolixAU
@SymbolixAU - один 0 меньше двух 0, не так ли? Но я вообще согласен, что это не однозначно заданный вопрос. – thelatemail