[R] Odp: Combining all possible values of variables into a new...

Petr PIKAL petr.pikal at precheza.cz
Mon Oct 20 16:39:00 CEST 2008


Hi

maybe you can change combination of your columns to factor

new <-factor(paste(x,y,z, sep=""))

and then reorder this factor (see reorder) change it to numeric to get 
index

index <- as.numeric(factor)

and then choose from set of 144 data 

data[index] 

or use your index directly if you need just numbers from 1 to the final to 
get your myvar.

Maybe you could also look to permutations function from gtools package

Regards
Petr


r-help-bounces at r-project.org napsal dne 20.10.2008 16:10:26:

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



More information about the R-help mailing list