我有一个二进制变量向量,用于说明该产品是否在该期间促销。我正在尝试弄清楚如何计算每次促销的持续时间以及促销之间的持续时间。
promo.flag = c(1,1,0,1,0,0,1,1,1,0,1,1,0))
换句话说:如果promo.flag
与上一时期相同running.total + 1
, else running.total
重置为 1
我尝试过使用 apply 函数和 cumsum,但无法设法获得运行总工作的条件重置:-(
我需要的输出是:
promo.flag = c(1,1,0,1,0,0,1,1,1,0,1,1,0)
rolling.sum = c(1,2,1,1,1,2,1,2,3,1,1,2,0)
任何人都可以阐明如何在 R 中实现这一目标吗?