[R] How to generate a particular sequence ?

(Ted Harding) Ted.Harding at manchester.ac.uk
Mon Sep 13 11:42:50 CEST 2010


On 13-Sep-10 09:19:21, Feng Li wrote:
> Dear R,
> I have a vector, say a = c(1,2,4,5,6,8). Can I generate a vector
> or array (2-by-3-by-3) of this form
> c(1,2,1,2,1,2,4,5,4,5,4,5,6,8,6,8,6,8)
> in which every two elements in "a" have been repeated twice?
> 
> I am to stupid today and could not figure this simple question out... 
> Many many thanks!
> 
> Feng

A possible solution (somewhat generalisable):

  a <- c(1,2,4,5,6,8)
  Reps <- 3

  pairs <- matrix(a,nrow=2)
  as.vector(pairs[,rep(c(1,2,3),each=Reps)])
  # [1] 1 2 1 2 1 2 4 5 4 5 4 5 6 8 6 8 6 8

(By the way, you have 3 repetitions but wrote "twice" -- I assume
you meant "thrice" but the above generalises to 2 repetitions ... :)

Ted.

--------------------------------------------------------------------
E-Mail: (Ted Harding) <Ted.Harding at manchester.ac.uk>
Fax-to-email: +44 (0)870 094 0861
Date: 13-Sep-10                                       Time: 10:42:46
------------------------------ XFMail ------------------------------



More information about the R-help mailing list