我有一个这样的数据框:
df <- data.frame(width = c(1,2,2,4), values = c(10,11,13,20))
我想使用rollapply来复合'values'列,但我想为每一行使用一个可变宽度,从'width'列中的相应行获取宽度。
对于我的生活,我无法弄清楚如何将width参数作为'width'列中的变量传递。
我有一个使用dplyr的mutate的解决方案,但它很笨重而且很慢。下面是我当前的代码,用静态'3'代替我想要的值:
rollapply(df[ , values_column], width = 3, function(x) rolling_compounder(x),
align = "right", fill = NA, partial = FALSE, by.column = FALSE)
编辑:
使用小数值: 0.1, 0.11, 0.13, 0.2
和上面相同的宽度,我希望复合的结果是:
0.1, 0.221, 0.254, 0.656