在r中创建一个带有ifelse语句的seq

时间:2015-04-22 19:24:15

标签: r

我在数据框中有一列跟踪时间变化。我正在努力弄清楚如何编写一个ifelse语句来创建一个序列,这样当一个数字(时间的变化)大于10时,它将逐步增加一个。例如,要创建一个片段,请输入以下内容:

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)

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

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