Re: [R] What's the BEST way in R to adapt this vector?

From: hadley wickham <h.wickham_at_gmail.com>
Date: Sat, 22 Nov 2008 21:12:03 -0600

On Sat, Nov 22, 2008 at 12:00 PM, zerfetzen <zerfetzen_at_yahoo.com> wrote:
>
> Goal:
> Suppose you have a vector that is a discrete variable with values ranging
> from 1 to 3, and length of 10. We'll use this as the example:
>
> y <- c(1,2,3,1,2,3,1,2,3,1)
>
> ...and suppose you want your new vector (y.new) to be equal in length to the
> possible discrete values (3) times the length (10), and formatted in such a
> way that if y[1] == 1, then y.new[1:3] == c(1,0,0), and if y[2] == 2, then
> y.new[4:6] == c(0,1,0). For example, the final goal should be:
>
> y.new <- c(1,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0)
>
> Note: I know how to do this with loops, but that's not taking advantage of
> R's capabilities with vectors and, I suspect, matrices.

How about:

as.vector(diag(3)[, y])

Hadley

-- 
http://had.co.nz/

______________________________________________
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.
Received on Sun 23 Nov 2008 - 03:14:33 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Sun 23 Nov 2008 - 03:30:27 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive