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 <savi...@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]] ______________________________________________ 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.