0
我有一個增加的年份值列表,偶爾會有中斷值,我想爲每個不間斷序列創建一個分組值。覺得像這樣的(缺少2005,2011)的載體:R:生成索引值來增加組中向量的值
x <- c(2001,2002,2003,2004,2006,2007,2008,2009,2010,2013,2014,2015,2016)
我想產生一個等長向量數量與同一指數運行的每一個值與像這樣結束了。
[1] 1 1 1 1 2 2 2 2 2 3 3 3 3
我想做到這一點使用最佳R的做法,所以我儘量避免回落到一個for循環,但我不知道如何從向量A到B.矢量有沒有人有什麼建議?
有些事情,我知道我可以做:
- 我可以前後標誌備案與ifelse作爲真正的差距
- 我可以當計數器應該通過包裹這種變化的指數在該聲明中
這是代碼做每個
ifelse(!is.na(lag(x)) & x == lag(x)+1, FALSE, TRUE)
which(ifelse(!is.na(lag(x)) & x == lag(x)+1, FALSE, TRUE))
'cummax(c(1,diff(x)))' –
呵呵,我從來沒有想過用cummax做跑步計數器。這真的很好。 – RandomString