У меня есть вектор, содержащий 0 и 1. Я хочу вернуть максимальное значение количества раз 1, которое появляется последовательно. Напр. если х входной векторМаксимальные последовательные повторы в векторе в R
x <-c(0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1)
Ожидаемый результат: 3
Моя попытка: Я использую функцию RLE, чтобы сделать эту работу. Вот мой пример кода:
x<-c(0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1)
y<-rle(x)
max_repeat <-max(y$lengths)
В этом случае, я получаю выход как 4 (соответствует 0 вместо 1). Я пытался использовать tapply, чтобы получить доступ к полному выходной РЛЭ, но я не в состоянии извлечь из максимального повторения, соответствующей величины 1.
out <-tapply(y$lengths, y$values, max)
Это то, что я получаю для отказа:
0 1
4 3
Когда я смотрю на структуру out, это «int [1: 2 (1d)] 4 3». У меня недостаточно опыта работы с этими типами переменных. Мне нужно извлечь значение, соответствующее 1, т.е. 3. Любая помощь будет оценена!
Благодаря
Вы, почти, там: 'out [[" 1 "]]' или 'max (y $ lengths [y $ values == 1])' –
ahh! понял. спасибо alexis !. –