Thanks. Problem solved. > rollapply(x,3,force, align="left") 1 1 2 3 2 2 3 4 3 3 4 5 4 4 5 6 5 5 6 7 6 6 7 8 7 7 8 9 8 8 9 10
> x<-1:10 > embed(x, 3)[, 3:1] [,1] [,2] [,3] [1,] 1 2 3 [2,] 2 3 4 [3,] 3 4 5 [4,] 4 5 6 [5,] 5 6 7 [6,] 6 7 8 [7,] 7 8 9 [8,] 8 9 10 > > Date: Sun, 2 Mar 2008 10:04:38 -0500 > From: [EMAIL PROTECTED] > To: [EMAIL PROTECTED] > Subject: Re: [R] Idioms for a timeseries operation - moving window > CC: r-help@r-project.org > > Try: > > rollapply(x, 3, force) > > or > > embed(x, 3)[, 3:1] > > On Sun, Mar 2, 2008 at 9:53 AM, Bo Zhou <[EMAIL PROTECTED]> wrote: > > > > I needed that matrix for following calculations. So I don't think roll* > > would work for me. > > > > Re: embed > > > > > x <- 1:10 > > > embed (x, 3) > > [,1] [,2] [,3] > > [1,] 3 2 1 > > [2,] 4 3 2 > > [3,] 5 4 3 > > [4,] 6 5 4 > > [5,] 7 6 5 > > [6,] 8 7 6 > > [7,] 9 8 7 > > [8,] 10 9 8 > > > x > > [1] 1 2 3 4 5 6 7 8 9 10 > > > > The matrix is in revered order. Anyway to put the matrix in the original > > order? Ie > > 1 2 3 > > 2 3 4 > > ... > > > > > > Cheers, > > Bo > > > > > > > > > > > Date: Sun, 2 Mar 2008 09:40:09 -0500 > > > From: [EMAIL PROTECTED] > > > To: [EMAIL PROTECTED] > > > Subject: Re: [R] Idioms for a timeseries operation - moving window > > > CC: r-help@r-project.org > > > > > > > > See > > > > > > ?embed > > > > > > and from zoo see: > > > ?rollapply > > > ?rollmean > > > ?rollmax > > > > > > There is a function coded in C in the caTools package for speed. > > > > > > > > > On Sun, Mar 2, 2008 at 9:24 AM, Bo Zhou <[EMAIL PROTECTED]> wrote: > > > > > > > > Hi Guys, > > > > > > > > Need your wisdom on this. > > > > > > > > Say I have a time series (in zoo format) like this > > > > > > > > > > > > > x <- zoo(11:21) > > > > > x > > > > 1 2 3 4 5 6 7 8 9 10 11 > > > > 11 12 13 14 15 16 17 18 19 20 21 > > > > > > > > > > > > I want to do a "moving window sampling" of it. The result can either be > > a matrix or a dataframe like this > > > > > > > > my.super.moving.window(x, length=3, by=1) > > > > > > > > 11 12 13 > > > > 12 13 14 > > > > 13 14 15 > > > > 14 15 16 > > > > .... > > > > 18 19 20 > > > > 19 20 21 > > > > > > > > This shouldn't be new. Many many people must have done this before. Any > > idea what's the best(efficient and elegant) way to do this? > > > > > > > > Cheers, > > > > > > > > Bo > > > > > > > > > > > > > > > > > > > > _________________________________________________________________ > > > > Climb to the top of the charts! Play the word scramble challenge with > > star power. > > > > > > > > [[alternative HTML version deleted]] > > > > > > > > > > > > ______________________________________________ > > > > R-help@r-project.org mailing list > > > > https://stat.ethz.ch/mailman/listinfo/r-help > > > > PLEASE do read the posting guide > > http://www.R-project.org/posting-guide.html > > > > and provide commented, minimal, self-contained, reproducible code. > > > > > > > > > > > > ________________________________ > > Shed those extra pounds with MSN and The Biggest Loser! Learn more. _________________________________________________________________ [[elided Hotmail spam]] [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.