使用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
@MrFlick感谢。我之前没有注意到它。 – akrun
@MrFlick感谢您的投票。 – akrun