try this:

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 <- data.frame(x, y, z)

ind <- do.call("paste", c(expand.grid(1:2, 1:3, 0:1)[3:1], sep = "\r"))
trg <- do.call("paste", c(d, sep = "\r"))
d$myvar <- match(trg, ind)


I hope it helps.

Best,
Dimitris


[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.


--
Dimitris Rizopoulos
Assistant Professor
Department of Biostatistics
Erasmus Medical Center

Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
Tel: +31/(0)10/7043478
Fax: +31/(0)10/7043014

______________________________________________
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.

Reply via email to