我在数据框中有一列跟踪时间变化。我正在努力弄清楚如何编写一个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)
但我似乎无法将它们放在一起。任何帮助将不胜感激。
答案 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