df <- data.frame("day" = 1:20,
"LATP"= c(.08,.11,.12,.09,.14,.06,.10,.11,.13,.08,.15,.08,.11,.14,.08,.11,.14,.07,.11,.12),
"LATP2" = c(0,0,0,1,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0))
这里是一个示例数据框。我正在尝试根据是否已触发LATP2(= 1)中的二进制函数来累计LATP列中的值,直到最大值为1。每当二进制函数被触发时,即使它们重叠,我也需要做一个累加的总和。我想最好是制作一个新的子集数据框,该数据框将带来达到1所需的LATP值范围,然后可以按启动它们的二进制事件进行分组?我希望能够绘制每个事件的累积LATP进度。
这是葡萄白粉病疾病压力模型数据框架的子集,LATP是从完全感染到完全感染的潜伏期发展。因此,每个孢子释放(LATP2)事件都会有一个自己的潜伏期,即潜伏期进展的总和。
我会提供一些尝试,但我真的不知道从哪里开始这个问题
欢呼声
我们基于'LATP2'的运行长度编码ID创建分组索引,并获得'LATP'的累加总和
library(dplyr)
library(data.table)
df %>%
group_by(grp = lag(rleid(LATP2), default = 1)) %>%
mutate(new = cumsum(LATP))