thanks peter. I was thinking more about t but you're right in that there's
an i there also. my
bad ( twice ).



On Mon, Jun 25, 2012 at 9:37 AM, Petr Savicky <savicky@cs.cas.cz> wrote:

> On Mon, Jun 25, 2012 at 05:39:45AM -0700, Kathie wrote:
> > Dear R users,
> >
> > I'd like to compute  X like below.
> >
> > X_{i,t} = 0.1*t + 2*X_{i,t-1} + W_{i,t}
> >
> > where W_{i,t}  are from Uniform(0,2) and X_{i,0} = 1+5*W_{i,0}
> >
> > Of course, I can do this with "for" statement, but I don't think it's
> good
> > idea because "i" and "t" are too big.
> >
> > So, my question is that
> >
> > Is there any better idea to avoid "for" statement for this problem?
>
> Hi.
>
> The recurrence does not use index i. So, it is possible to vectorize
> over i. Try the following.
>
>  m <- 10 # bound on i
>  n <- 6 # bound on tt
>  W <- matrix(runif(m*n, max=2), nrow=m, ncol=n)
>  X <- matrix(nrow=m, ncol=n)
>  X[, 1] <- 1 + 5*W[, 1]
>  for (tt in seq.int(from=2, length=n-1)) {
>      X[, tt] <- 0.1*(tt-1) + 2*X[, tt-1] + W[, tt]
>  }
>
> The code uses tt instead of t to avoid confusion with the transpose
> function.
>
> If n is always at least 2, then seq.int(from=2, length=n-1) may be
> replaced by 2:n.
>
> Hope this helps.
>
> Petr Savicky.
>
> ______________________________________________
> 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.
>

	[[alternative HTML version deleted]]

