Perhaps xnew <- x[1:length(x)+c(1,-1)]
will do it. Ben Fairbank -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of David Afshartous Sent: Friday, June 27, 2008 9:11 AM To: r-help@r-project.org Subject: [PS] [R] Switching entries in vector in by groups of two All, I have a long vector that contains an even number of entries. I'd like to switch the 1st and 2nd entry, the 3rd and 4th, and so on, without writing a loop. This code works: X = c(8, 10, 6, 3, 20, 1) index = c(2,1,4,3,6,5) X[index] But for a long list is there a way to generate the index? I can get the parts to the index as: index.odd = seq(1,length(X), by = 2) index.even = index.odd + 1 Is there a simple way to interweave them to produce the desired index? Or is there a better way? Cheers, David ______________________________________________ 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. ______________________________________________ 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.