yet another way (as it always is in R): > x<-c(1,0,0,1,0,0,1,0,0,1) > y<-c(1,3,2,3,2,1,2,3,2,3) > z<-c(1,2,1,2,1,2,1,2,1,2) > d<-as.data.frame(cbind(x,y,z)) > d$myvar <- x*6 + (y-1)*2 + z > > d x y z myvar 1 1 1 1 7 2 0 3 2 6 3 0 2 1 3 4 1 3 2 12 5 0 2 1 3 6 0 1 2 2 7 1 2 1 9 8 0 3 2 6 9 0 2 1 3 10 1 3 2 12
On Mon, Oct 20, 2008 at 10:10 AM, <[EMAIL PROTECTED]> wrote: > > I'm trying to create a new column in my data.frame where subjects are > categorized depending on values on four other columns. In any other case I > would just nest a few ifelse statements, however, in this case i have > 4*6*2*3=144 combinations and i get weird 'context overflow' errors. So I > wonder if there is a more efficient way of doing this. > > For illustrational purposes, let's say i have: > > x<-c(1,0,0,1,0,0,1,0,0,1) > y<-c(1,3,2,3,2,1,2,3,2,3) > z<-c(1,2,1,2,1,2,1,2,1,2) > d<-as.data.frame(cbind(x,y,z)) > > and i do: > > d$myvar <- ifelse(d$x == 0 & d$y==1 & d$z==1 , d$myvar <- 1, > ifelse(d$x == 0 & d$y==1 & d$z==2 , d$myvar <- 2, > ifelse(d$x == 0 & d$y==2 & d$z==1 , d$myvar <- 3, > ifelse(d$x == 0 & d$y==2 & d$z==2 , d$myvar <- 4, > ifelse(d$x == 0 & d$y==3 & d$z==1 , d$myvar <- 5, > ifelse(d$x == 0 & d$y==3 & d$z==2 , d$myvar <- 6, > ifelse(d$x == 1 & d$y==1 & d$z==1 , d$myvar <- 7, > ifelse(d$x == 1 & d$y==1 & d$z==2 , d$myvar <- 8, > ifelse(d$x == 1 & d$y==2 & d$z==1 , d$myvar <- 9, > ifelse(d$x == 1 & d$y==2 & d$z==2 , d$myvar <- 10, > ifelse(d$x == 1 & d$y==3 & d$z==1 , d$myvar <- 11, > ifelse(d$x == 1 & d$y==3 & d$z==2 , d$myvar <- 12, NA)))))))))))) > > Suggestions? > > ______________________________________________ > 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. > -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve? ______________________________________________ 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.