R 带中断的条件和
我需要弄清楚如何继续使用R 带中断的条件和,r,function,cumsum,R,Function,Cumsum,我需要弄清楚如何继续使用c中的累积和,而crit中的下四行从它弯曲的那一行开始有真值 预期输出在列X中: crit c X 1 1 0 NA 2 1 0 NA 3 1 0 NA 4 1 0 NA 5 1 1 1 6 1 2 2 7 1 3 3 8 1 4 4 9
c
中的累积和,而crit
中的下四行从它弯曲的那一行开始有真值
预期输出在列X
中:
crit c X
1 1 0 NA
2 1 0 NA
3 1 0 NA
4 1 0 NA
5 1 1 1
6 1 2 2
7 1 3 3
8 1 4 4
9 1 5 5
10 1 6 6
11 1 7 7 # end of curent cumsum in x
12 0 0 NA
13 0 0 NA
14 0 0 NA
15 1 0 8 # c rollsum should continue here
16 1 0 9 # because there weren't 4 rows with 0 in crit
17 1 0 10
18 0 0 NA
19 1 0 11
20 0 0 NA
21 0 0 NA
22 0 0 NA
23 0 0 NA
24 1 0 NA # cumsum should stop as 4 rows have crit = 0
25 1 0 NA
我没有具体的代码要展示,因为我有很多尝试,循环,rle
,ifelse
t我能看到解决这个问题的唯一方法是使用函数,该函数将添加到
c
中正在进行的求和,并添加到df$c的行中[iI在最后两行,即24和25,您的评论是,#cumsum应该继续,因为4行的crit=1
,那么为什么X
coumn,即预期输出NA在那里?更正了它。如果crit的四个值为0,它就会停止。在最后两行,即24和25,您的评论是,#cumsum应该继续,因为4行的crit=1
,那么为什么X
列(即预期输出NA)在那里?更正了它。如果四个临界值为0,它将停止。
structure(list(crit = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1), c = c(0L, 0L, 0L, 0L, 1L,
2L, 3L, 4L, 5L, 6L, 7L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L), break_true = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0), X = c(NA, NA, NA,
NA, 1, 2, 3, 4, 5, 6, 7, NA, NA, NA, 8, 9, 10, NA, 11, NA, NA,
NA, NA, NA, NA)), .Names = c("crit", "c", "break_true", "X"), row.names = c(NA,
-25L), class = "data.frame")