我有條件總和與復位爲零。Cumsum忽略NA與重置
criteria1 <- c(rep(0,2), rep(1,5), rep(0,3), rep(1,6),rep(0,2))
criteria1[c(6,9,12,13,14,15)] <- NA
#cumsum function, working before the first NA
ave(criteria1, cumsum(criteria1 == 0), FUN = cumsum)
[1] 0 0 1 1 1 NA 1 0 NA 0 1 NA NA NA NA 1 0 0
#and desired output would be
#NA's are replaced with the last value accumulated
#if more than three leave NA's in
0 0 1 2 3 3 4 0 0 0 1 NA NA NA NA 2 0 0
有些條件:
NA
s不能用零(或一個)來代替,- 矢量必須保持相同的長度(因此不包括不是一個選項)
- 最長連續忽略的長度爲
NA
s應爲3。如果它超過三個,那麼它們應該保持爲NA
s,功能應該從最後一個非NA
繼續。
一些答案存在於同一個主題,但我不知道如何把它放在一起。
感謝
採取從'zoo'看看'na.locf'?。 – ytk
當有4個連續的「NA」值時需要發生什麼? – Wietze314
「連續被忽略的NAs的最長長度應該是三個」。 - 你應該擴展你的例子,以便這個條件真正重要。 – Frank