[R] how to vectorize a for loop

markleeds at verizon.net markleeds at verizon.net
Mon Nov 10 05:16:55 CET 2008


hi: below almost gets you there except for the endpoints. see filter for 
more information.

d=0.5
L=20
x=seq(20, by=1, length.out=20)
temp <- as.numeric(filter(x,filter=c(d,(1-2*d),d),sides=2))
print(temp)



On Sun, Nov 9, 2008 at 10:57 PM, stephen sefick wrote:

> #Is there a way to vectorize the for loop
> #maybe a fancy indexing trick?
> #thanks
>
> d=0.5
> L=20
> x=seq(20, by=1, length.out=20)
> reflecting <- function(pre, d, L){
> 	r=L-1
> 	x=rep(0, L)
> 	for(j in 2:r){
> 	x[j]=((1-(2*d))*pre[j])+(d*pre[(j+1)])+(d*pre[(j-1)])
> 	}
> 	x[1]=((1-d)*pre[1])+(d*pre[2])
> 	x[L]=((1-d)*pre[L])+(d*pre[(L-1)])
> 	y=x
> }
>
> f = reflecting(x, d, L)
> -- 
> Stephen Sefick
> Research Scientist
> Southeastern Natural Sciences Academy
>
> Let's not spend our time and resources thinking about things that are
> so little or so large that all they really do for us is puff us up and
> make us feel like gods.  We are mammals, and have not exhausted the
> annoying little problems of being mammals.
>
> 								-K. Mullis
>
> ______________________________________________
> R-help at 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.



More information about the R-help mailing list