On Sat, Nov 22, 2008 at 12:00 PM, zerfetzen <[EMAIL PROTECTED]> 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@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.