I could send the entire bit of code but I was hoping that someone would 
recognize the issue from past experience. I may be an artifact of other 
parts of the code. I observed the problem in a larger context and cut 
out all that you see below. The comments were next to the results to 
clarify. Apparently I failed to be clear.

Eik Vettorazzi [via R] wrote:
> Sorry, not reproducible. This works for me (as expected):
>
> branches<-c(5,6)
> iInd = 1
>   for(i in 1:length(branches)) {
>     print((1:branches[i])+iInd-1)   # iInd is a position shift of the 
> index
>     ni = branches[i]
>     print(i)
>     print(ni)
>     print(c(ni,rep(i,times=ni)))
> # ... some interesting other stuff for my project that gets wrecked
> because of this issue
>     iInd = iInd + branches[i]
> }
>
>
> dkStevens schrieb:
>
> > I'm observing odd behavior of the rep(...) procedure when using 
> variables as
> > parameters in a loop. Here's a simple loop on a vector 'branches' 
> that is
> > c(5,6,5,5,5). The statement in question is          
> > print(c(ni,rep(i,times=ni)))
> >
> > that works properly first time through the loop but the second time, 
> when
> > branches[2] = 6, only prints 5 values of i.
> >
> > Any ideas, anyone?
> >
> >   iInd = 1
> >   for(i in 1:length(branches)) {
> >     print((1:branches[i])+iInd-1)   # iInd is a position shift of 
> the index
> >     ni = branches[i]
> >     print(i)
> >     print(ni)
> >     print(c(ni,rep(i,times=ni)))
> > # ... some interesting other stuff for my project that gets wrecked 
> because
> > of this issue
> >     iInd = iInd + branches[i]
> > }
> >
> > # first pass through loop
> > [1] 1 2 3 4 5             # branches[1] + iInd - 1 content
> > [1] 1                        # i value to repeat 5 times
> > [1] 5                        # ni = 5 on 1st pass
> > [1] 5 1 1 1 1 1           # five values - 1 1 1 1 1 - OK
> >
> > # second pass through loop
> > [1]  6  7  8  9 10 11   # branches[2] + iInd - 1 content
> > [1] 2                       # i value to repeat 6 times
> > [1] 6                       # ni = 6 on 2nd pass
> > [1] 6 2 2 2 2 2          # 6 'twos' but only shows 5 'twos'
> > print(c(ni,rep(i,times=ni))) - why not 6?
> >
> >
> >  
>
> -- 
> Eik Vettorazzi
> Institut für Medizinische Biometrie und Epidemiologie
> Universitätsklinikum Hamburg-Eppendorf
>
> Martinistr. 52
> 20246 Hamburg
>
> T ++49/40/7410-58243
> F ++49/40/7410-57790
>
> ______________________________________________
> [hidden email] 
> <http://n4.nabble.com/user/SendEmail.jtp?type=node&node=1560587&i=0> 
> 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.
>
>
> ------------------------------------------------------------------------
> View message @ 
> http://n4.nabble.com/Funny-result-from-rep-procedure-tp1560547p1560587.html 
>
> To unsubscribe from Funny result from rep(...) procedure, click here 
> < (link removed) =>. 
>
>

-- 
David K Stevens, P.E., Ph.D., Professor
Civil and Environmental Engineering
Utah Water Research Laboratory
8200 Old Main Hill
Logan, UT  84322-8200
435 797 3229 - voice
435 797 1363 - fax
david.stev...@usu.edu




-- 
View this message in context: 
http://n4.nabble.com/Funny-result-from-rep-procedure-tp1560547p1560643.html
Sent from the R help mailing list archive at Nabble.com.

        [[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.

Reply via email to