[R] strange algorithm needed

Gabor Grothendieck ggrothendieck at gmail.com
Wed Nov 1 15:47:42 CET 2006


Try:

rep(1:3, length = 17)

or

as.numeric(gl(3, 1, 17))

or

y <- 1:17
replace(y, TRUE, 1:3) # ignore warning


On 11/1/06, Mark.Leeds at morganstanley.com <Mark.Leeds at morganstanley.com> wrote:
>
>
> i need a strange algorithm that i can easily do in a loop but need
> o do without looping.
>
> suppose i have a vector of length y filled with zeros and a number x.
>
> then, i want a new vector which is (1,......x,1......x,1.....x,1.....y mod
> x )
>
> so if y was of length 17 and x was 3, the resultant vector should be
>
> (1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2)
>
> so basically , the algorithm should repeat seq(1,x) as many times as
> needed to fill y but
> then , if the last one doesn;'t fit perfectly, it should stop whenever it
> hits the end of y ?
>
> rep(seq(1:x,length(y)/x) will work when there is a perfect fit but
> it can't handle the non fit cases. it just cuts
> off the non integer part of length(y)/x and then fills the vector
> do that the resultant vector is less than the length of y.
>
> thanks.
>
> ______________________________________________
> R-help at stat.math.ethz.ch 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