r cumsum 微分重置为 >0
r cumsum differentiate reset at >0
我对 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
最后一列应该是结果。
有人有想法吗?
非常感谢:)
data.table
包中有一个名为 rleid
的非常有用的函数,您可以将其用于分组。我会将它与一些基本功能结合使用:
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
我对 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
最后一列应该是结果。
有人有想法吗?
非常感谢:)
data.table
包中有一个名为 rleid
的非常有用的函数,您可以将其用于分组。我会将它与一些基本功能结合使用:
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