[R] Simple... but...

(Ted Harding) Ted.Harding at manchester.ac.uk
Wed Jul 23 15:30:34 CEST 2008


On 23-Jul-08 12:54:49, Shubha Vishwanath Karanth wrote:
> Hi R,
> If 
> x=c(1,3,5)
> y=c(2,4,6)
> 
> I need a vector which is c(1,2,3,4,5,6) from x and y.
> How do I do it? I mean the best way....
> Thanks, Shubha

Your query is ambiguous, in that it is not clear whether you want
a) The elements of the combination of x and y to be in increasing
   order, regardless of how they are distributed between x and y

   In which case a simple solution is sort(c(x,y))

b) The elements to be taken alternately from x and y, regardless
   of their values

   In which case a simple solution is as.vector(rbind(x,y))

Example:

  x <- c(1.1,1.2,1.3)
  y <- c(2.1,2.2,2.3)

  ## (a):
  sort(c(x,y))
  # [1] 1.1 1.2 1.3 2.1 2.2 2.3

  ## (b)
  as.vector(rbind(x,y))
  # [1] 1.1 2.1 1.2 2.2 1.3 2.3

The key to solution (b) is that R reads a matrix down the columns,
and rbind(x,y) puts x as a row above y as a row, so reading down
the columns alternates between x and y.

Hoping this helps,
Ted.

--------------------------------------------------------------------
E-Mail: (Ted Harding) <Ted.Harding at manchester.ac.uk>
Fax-to-email: +44 (0)870 094 0861
Date: 23-Jul-08                                       Time: 14:30:31
------------------------------ XFMail ------------------------------



More information about the R-help mailing list