Well, maybe you are just bad at typing then ;-) The lines rr==ii, pp==pp+1, etc. are not setting rr and pp but comparing them. Probably you want rr <- ii and pp <- pp+1, etc. And the last line of your loop 'ii=ii+1' means that, since the for statement is already incrementing ii, you are incrementing it twice and skipping the even indices. Omit this line probably. You are also forgetting(?) the operator precedence in sum(lselb1[rr:ii-1]) and similar lines. Note that this is equivalent to sum(lselb1[(rr-1):(ii-1)]); is that what you meant? Or did you want sum(lselb1[rr:(ii-1)])? You are changing some variables but not asking R to print anything as far as I can see. To see the results, ask R to print hll.
HTH, -- David -----Original Message----- From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On Behalf Of SnowManPaddington Sent: Wednesday, January 28, 2009 3:59 PM To: r-help@r-project.org Subject: [SPAM] - Re: [R] for/if loop - Bayesian Filter detected spam Hi ya, I've revised the code (and finally know what I m doing.. :-D) The good news is.. I dont get any error message, but the bad news is the following optim generate no results. I still think there is something to do with my loop... can anyone advice? Thanks again!!! pp=1 rr=1 for (ii in 1:n){ if (!(panel[ii] == pp)){ hll[pp,1] == sum(lselb1[rr:ii-1]) hll[pp,2] == sum(lselb2[rr:ii-1]) rr==ii pp==pp+1 } if (ii==n){ hll[pp,1] == sum(lselb1[rr:ii]) hll[pp,2] == sum(lselb2[rr:ii]) rr==ii pp==pp+1 } ii=ii+1 } pp=1 rr=1 for (ii in 1:n){ if (!(panel[ii] == pp)){ hll[pp,1] == sum(lselb1[rr:ii-1]) hll[pp,2] == sum(lselb2[rr:ii-1]) rr==ii pp==pp+1 } if (ii==n){ hll[pp,1] == sum(lselb1[rr:ii]) hll[pp,2] == sum(lselb2[rr:ii]) rr==ii pp==pp+1 } ii=ii+1 } SnowManPaddington wrote: > > Hi, it's my first time to write a loop with R for my homework. This loop > is part of the function. I wanna assign values for hll according to panel > [ii,1]=pp. I didn't get any error message in this part. but then when I > further calculate another stuff with hll, the function can't return. I > think it must be some problem in my loop. Probably something stupid or > easy. But I tried to look for previous posts in forum and read R language > help. But none can help.. Thanks! > > > > for (ii in 1:100){ > for (pp in 1:pp+1){ > for (rr in 1:rr+1){ > if (panel[ii,1]!=pp) > { > hll(pp,1)=ColSums(lselb1(rr:ii-1,1)) > hll(pp,2)=ColSums(lselb2(rr:ii-1,1)) > rr=ii > pp=pp+1 > } > else > { > hll(pp,1)=ColSums(lselb1(rr:ii,1)) > hll(pp,2)=ColSums(lselb2(rr:ii,1)) > rr=ii > pp=pp+1} > } > }}} > > > in fact I have the corresponding Gauss code here. But I really don't know > how to write such loop in R. > > rr=1; > ii=1; > pp=1; > do until ii==n+1; > if pan[ii,1] ne pp; > hll[pp,1]=sumc(lselb1[rr:ii-1,1]); > hll[pp,2]=sumc(lselb2[rr:ii-1,1]); > rr=ii; > pp=pp+1; > endif; > if ii==n; > hll[pp,1]=sumc(lselb1[rr:ii,1]); > hll[pp,2]=sumc(lselb2[rr:ii,1]); > rr=ii; > pp=pp+1; > endif; > ii=ii+1; > endo; > > -- View this message in context: http://www.nabble.com/for-if-loop-tp21701496p21715928.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ 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. ______________________________________________ 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.