2015-04-22 4 views
1

У меня есть столбец в кадре данных, который отслеживает изменения во времени. Я изо всех сил пытаюсь понять, как написать инструкцию ifelse для создания последовательности, так что, когда число (изменение во времени) больше 10, оно увеличит его. Например, чтобы сделать сниппет, здесь вход:создать seq с оператором ifelse в r

input <- c(1,1,1,2,5,2,4,9,11,1,1,15,2,1) 

Вот результат я хочу:

output <- c(1,1,1,1,1,1,1,1,1,2,2,2,3,3) 

Когда есть число более 10, то следующий номер в векторе шаги вверх до 2, а затем 3.

Я пытался сделать что-то, как с помощью IfElse создать флаг вроде этого:

ifelse(input>10,1,0) 

Но я не могу представить все это вместе. Любая помощь будет оценена по достоинству.

ответ

2

Попробуйте cumsum

cumsum(c(TRUE,(input>10)[-length(input)])) 
#[1] 1 1 1 1 1 1 1 1 1 2 2 2 3 3 
+0

@MrFlick Спасибо за комментарий. Раньше я этого не замечал. – akrun

+0

@MrFlick Спасибо, что голосовали. – akrun

Смежные вопросы