[R] repeating values in an index two by two

William Dunlap wdunlap at tibco.com
Mon Nov 11 18:04:09 CET 2013


Or you can use the integer divide and remainder operators:
   > n <- 30
   > x <- seq(0, len=n)
   > + (x %% 2) + (x %/% 4)*2 + 1 # period 2 oscillator + jump by 2 every fourth
    [1]  1  2  1  2  3  4  3  4  5  6  5  6  7  8  7
   [16]  8  9 10  9 10 11 12 11 12 13 14 13 14 15 16

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf
> Of Iakub Henschen
> Sent: Monday, November 11, 2013 8:42 AM
> To: r-help at r-project.org
> Subject: Re: [R] repeating values in an index two by two
> 
> > n<-7
> > rep(seq(1,n,2), each=4)+c(0,1,0,1)
>  [1] 1 2 1 2 3 4 3 4 5 6 5 6 7 8 7 8
> 
> rep(), seq(), rbind(), apply() ... whatever: internally there will always
> be iteration via some loop :-)
> 
> Ia.
> 
> 
> On Mon, Nov 11, 2013 at 11:16 AM, Carl Witthoft <carl at witthoft.com> wrote:
> 
> > Here's a rather extreme solution:
> >
> >  foo<-rep(1:6,each=2)
> > Rgames> foo
> >  [1] 1 1 2 2 3 3 4 4 5 5 6 6
> >
> > Rgames> foo[rep(c(1,3,2,4),3)+rep(c(0,4,8),each=4)]
> >  [1] 1 2 1 2 3 4 3 4 5 6 5 6
> >
> > In the general case, then, it would be something like
> >
> > foo<- rep(1:N, each = 2)  # foo is of length(2*N)
> >
> > foo[rep(c(1,3,2,4),2*N/4 + rep( seq(0, 3*N/4,by=4),each=4)]
> >
> > Note that the refolding requires the sequence to have length a multiple of
> > 4.
> >
> >
> >
> >
> > Patrick Burns wrote
> > >> f1
> > > function(x) {
> > >      one <- matrix(1:x, nrow=2)
> > >      as.vector(rbind(one, one))
> > > }
> > > <environment: 0x000000000daaf1c0>
> > >  > f1(8)
> > >   [1] 1 2 1 2 3 4 3 4 5 6 5 6 7 8 7 8
> > >
> > > Pat
> > >
> > >
> > > On 11/11/2013 12:11, Federico Calboli wrote:
> > >> Hi All,
> > >>
> > >> I am trying to create an index that returns something like
> > >>
> > >> 1,2,1,2,3,4,3,4,5,6,5,6,7,8,7,8
> > >>
> > >> and so on and so forth until a predetermined value (which is obviously
> > >> even).  I am trying very hard to avoid for loops or for loops front
> > ends.
> > >>
> > >> I'd be obliged if anybody could offer a suggestion.
> > >>
> > >> BW
> > >>
> > >> F
> > >>
> > >>
> > >>
> > >> ______________________________________________
> > >>
> >
> > > R-help@
> >
> > >  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.
> > >>
> > >
> > > --
> > > Patrick Burns
> >
> > > pburns at .seanet
> >
> > > twitter: @burnsstat @portfolioprobe
> > > http://www.portfolioprobe.com/blog
> > > http://www.burns-stat.com
> > > (home of:
> > >   'Impatient R'
> > >   'The R Inferno'
> > >   'Tao Te Programming')
> > >
> > > ______________________________________________
> >
> > > R-help@
> >
> > >  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 this message in context:
> > http://r.789695.n4.nabble.com/repeating-values-in-an-index-two-by-two-
> tp4680210p4680234.html
> > Sent from the R help mailing list archive at Nabble.com.
> >
> > ______________________________________________
> > 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.
> >
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> 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