【发布时间】:2017-02-09 14:31:15
【问题描述】:
我有条件总和,重置为零。
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
一些条件:
-
NAs 不能用零(或一)代替, - 向量必须保持相同的长度(因此排除不是一个选项)
- 连续忽略
NAs 的最长长度应为三。如果超过三个,则它们应保持为NAs,并且功能应从最后一个非NA继续。
在同一个主题上存在一些答案,但我不知道如何将它们放在一起。
谢谢
【问题讨论】:
-
从
zoo看?na.locf。 -
当有 4 个连续的
NA值时需要发生什么? -
"连续忽略的 NA 的最长长度应为 3。" -- 您可能应该扩展您的示例,以便此条件真正重要。