我有一个二进制变量向量,它说明产品在此期间是否正在促销。我正在尝试计算如何计算每次促销的持续时间以及促销之间的持续时间。
promo.flag = c(1,1,0,1,0,0,1,1,1,0,1,1,0))
所以换句话说:如果promo.flag
与上一个时期相同,那么running.total + 1
,否则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 中实现这一目标吗?