我对R很新,并在论坛上尝试了一些公式,但不知怎的,我无法修改它们以满足我的条件。 我想构建一个cumsum,当E列中的变量为> = 0时
NR E Proability Cumsum
1 -.2 .2 .2
2 -.15 .2 .4
3 -.1 .2 .6
4 .1 .2 .2
5 .2 .2 .4
最后一列应该是结果。
有没有人有想法?
非常感谢:)
答案 0 :(得分:1)
在rleid
包中有一个非常有用的函数data.table
,您可以使用该函数进行分组。我将它与一些基本功能结合使用:
library(data.table)
df <- transform(df, cumsum2 = ave(Proability, rleid(E > 0), FUN = cumsum))
或者,如果你想完全使用data.table函数,它将是
setDT(df)
df[, cumsum2 := cumsum(Proability), by = rleid(E > 0)]
setDF(df) # optional