2015-04-22 118 views
1

我在數據框中有一列可以跟蹤時間的變化。我很努力地想出如何編寫一個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) 

但我似乎無法把它放在一起。任何幫助,將不勝感激。

回答

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