3
我有一个二进制变量向量,它指出产品在期间是否处于升级状态。我正在努力计算如何计算每次促销的持续时间以及促销之间的持续时间。根据值在列上运行求和值
promo.flag = c(1,1,0,1,0,0,1,1,1,0,1,1,0))
因此,换句话说:如果promo.flag
是一样的前一段时间,然后running.total + 1
,否则running.total
重置为1
我试着玩应用功能和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中实现这一点阐明了什么?
非常感谢,这是固定的,并给我更多的功能学习! 优秀,及时的回应! – 2012-02-13 01:13:02
没问题。事实证明,我只是发现了这个功能的用途:-)。还可以看看'zoo'库中的'rollapply'函数家族,它们功能更强大,但是以固定窗口大小为代价(可能有一种方法可以改变它;我对它们不是很熟悉)。 – 2012-02-13 01:25:21
P.S.欢迎来到堆栈溢出!我们希望你会坚持[r]标签。 – 2012-02-13 01:26:44