Hi I have made the sample code again. Could you please guide how to use vectorization for variables whose next value depends on the previous one?
w = NULL for(j in 1:1000) { z = NULL x = rnorm(2000) z[1] = x[1] for(i in 2:2000) { z[i] = x[i]+5*z[i-1] if(z[i]>4 | z[i]<1) { w[j]=i } else { w[j] = 0 } } } On Sun, Jan 31, 2021 at 10:01 AM David Winsemius <dwinsem...@comcast.net> wrote: > > On 1/30/21 8:26 PM, Shaami wrote: > > Hi > > I have very large dependent nested for loops that are quite expensive > > computationally. It takes weeks and does not end to give me results. > Could > > anyone please guide how could I use apply function or any other > suggestion > > for such big and dependent loops in R? A sample code is as follows. > > > > w = NULL > > for(j in 1:1000) > > { > > x = rnorm(2000) > > z = x[1] > > for(i in 2:2000) > > { > > z = x[i]+5*z[i-1] > > I'm guessing you meant to type: > > z[i] <- x[i]+5*z[i-1] > > > if(z>4 | z<1) { > > And more guesses (in the absence of any sort of problem description) > that you really wanted: > > > if(z[i]>4 | z[i]<1) { .... > > > > w[j]=i > > break > > } else { > > w[j] = 0 > > } > > } > > } > > > Are you sure you need a for-loop? Seems like you could have done this > with a couple of vectorized operations. And the `break` looked entirely > superfluous. > > > > > Thank you > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > > 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 -- To UNSUBSCRIBE and more, see 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.