使用ifelse语句在r中创建一个seq

问题描述:

我在数据框中有一列可以跟踪时间的变化。我很努力地想出如何编写一个ifelse语句来创建一个序列,以便当一个数字(时间变化)大于10时,它会提高一个。例如,做一个片断,这里是输入:使用ifelse语句在r中创建一个seq

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) 

但我似乎无法把它放在一起。任何帮助,将不胜感激。

拉升评论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