可能重复:
`ddply`(或类似的)可以做一个滑动窗口吗?
是否有类似 rollapply 的函数(标准 R 或 CRAN 包中)在 data.frame 上运行,但不会将其转换为矩阵。rollapply 可以与 data.frame 一起使用,但如果 data.frame 具有混合类型,则每个数据窗口都将转换为字符(矩阵)。
我更喜欢支持 width、na.pad、align 等的函数,就像 rollapply
例子
采用混合类型的任何 data.frame
test = data.frame( Name = c( "bob" , "jane" , "joe" ) , Points = c( 4 , 9 , 1 ) )
假设您想滚动窗口大小为 2。 FUN 的第一次迭代使用仅包含测试的第 1 行和第 2 行的 data.frame 调用。
所以RollapplyThatRespectsDataFrame( ... , FUN = function( x ) { ... } )
在第一次迭代时会设置x = data.frame( Name = c( "bob" , "jane" ) , Points = c( 4 , 9 ) )
第二次迭代是一个 data.frame 的第 2 行和第 3 行test
。
基本上,这个新函数与 rollapply 做同样的事情,除了它可以与 data.frames 一起正常工作。它不会转换为矩阵。