在 R 中跨周计算(保留率) - for 循环,或者是否有更好的选择



我正在尝试找出一种更好的方法来计算数周的保留率。

这是每周数据,因此在 for 循环中执行此操作可能在计算上非常昂贵,最好避免这样做。

r = retention.rate
x = rep(10,52)
y[1] = x[1]
y[2] = x[2]+y[1]*r
y[3] = x[3]+y[2]*r
y[4] = x[4]+y[3]*r

等等。

目前,我正在 for 循环中执行此操作,如下所示:

for(i in 2:length(y)) {
    y[i] = x[i] + y[i-1] * r
}

有没有更好的方法

试试这个:

y = as.numeric(lapply(1:52, function(i) sum(x[1:i]*r^(0:(i-1)))))

相关内容

最新更新