Может ли `ddply` (или аналогичный) делать скользящее окно?

Что-то вроде

sliding = function(df, n, f)
    ldply(1:(nrow(df) - n + 1), function(k)
        f(df[k:(k + n - 1), ])
    )

Это будет использоваться как

> df
  n         a
1 1 0.8021891
2 2 0.9446330
...

> sliding(df, 2, function(df) with(df,
+     data.frame(n = n[1], a = a[1], b = sum(n - a))
+ ))
  n         a        b
1 1 0.8021891 1.253178
...

За исключением того, что прямо внутри ddply , чтобы я мог получить хороший синтаксический сахар что идет с ним?

15
задан Owen 29 August 2011 в 04:14
поделиться