我试图得到过去N天的滚动和,不包括NA的。使用这个示例df:myVec <- data.frame(myVec = c(7,2,4,5,1,3,2,9))
我知道函数rollsumr
使用这种方法:
library(zoo)
rollsumr(myVec$myVec, k = 3, fill = NA)
字符串
这会产生以下输出:NA NA 13 11 10 9 6 14
然而,我不想让领先的NA占据这些点。我希望第一个点是第一个索引,第二个点是1st + 2nd,依此类推,直到达到Nth
点,最终结果看起来像7 9 13 11 10 9 6 14
。
如果N
的天数很短,我可以使用for循环来遍历,但是如果N
的滚动和是50,有100行,我必须为前50天的每一天单独索引。所以,我认为有一种更简单,更有效的方法来实现这一点。
3条答案
按热度按时间x7yiwoj41#
slider::slide_dbl
就是你要找的字符串
sqyvllje2#
下面是一个有效的向量化方法:
字符串
基准:
relj7zay3#
您可以在
rollapplyr
中使用partial=TRUE
:字符串
或者在
dplyr
中使用相同的函数:型