[R] combination which limited

Muhammad Subianto subianto at gmail.com
Mon Jun 13 13:16:44 CEST 2005


Dear R-helpers,

On this day 6/12/2005 10:48 AM, Muhammad Subianto wrote:
> Dear All,
> Many thanks to Marc Schwartz and Gabor Grothendieck who have explained
> me about using expand.grid function and clearly explain how to use
> JGR.
> 
> 
>>dd <- expand.grid(interface = interface, screen = screen,
>>   computer = computer, available = available)
>>
>>There are several possibilities now:
>>
>>1. you could list out dd on the console and note the number of the
>>rows you want to keep:
>>
>>idx <- c(1,5,7)
>>dd2 <- dd[,idx]
>>
> 
> 
> I like a possible no. 1, because I can use and explore with my hand,
> 
>> idx <- c(1:5,9,17,25)
>> dd2 <- dd[idx,]
>> dd2
> 
>    interface screen computer available
> 1        usb    lcd       pc       yes
> 2   fireware    lcd       pc       yes
> 3      infra    lcd       pc       yes
> 4  bluetooth    lcd       pc       yes
> 5        usb   cube       pc       yes
> 9        usb    lcd   server       yes
> 17       usb    lcd   laptop       yes
> 25       usb    lcd       pc        no
> 
> 
> Regards,
> Muhammad Subianto
> Notepad, Copy and Paste are my best friend to use R.2.1.0 on windows 2000
> 

As previous mail, using expand.grid can handle all variables in 
datasets. But, if I need only one or more combinations I can choice 
combination (rows) which I need,

interface <- c("usb","fireware","infra","bluetooth")
screen    <- c("lcd","cube")
computer  <- c("pc","server","laptop")
available <- c("yes","no")
dd <- 
expand.grid(interface=interface,screen=screen,computer=computer,available=available)
idx <- c(1:5,9,17,25) # this combination rows) what I need
dd2 <- dd[idx,]
dd2

Because I only need combination (1,2,3,4,5,9,17 and 25), I tried to make 
a simple code to make sure what pattern the combination I have. I was 
wondering if someone can help me to make a simple function.

   smdxc <- rbind(
           c(levels(dd[,1])[1],	#combination 1
             levels(dd[,2])[1],
             levels(dd[,3])[1],
             levels(dd[,4])[1]),

           c(levels(dd[,1])[2],	#combination 2
             levels(dd[,2])[1],
             levels(dd[,3])[1],
             levels(dd[,4])[1]),

           c(levels(dd[,1])[3],	#combination 3
             levels(dd[,2])[1],
             levels(dd[,3])[1],
             levels(dd[,4])[1]),

           c(levels(dd[,1])[4],	#combination 4
             levels(dd[,2])[1],
             levels(dd[,3])[1],
             levels(dd[,4])[1]),

           c(levels(dd[,1])[1],	#combination 5
             levels(dd[,2])[2],
             levels(dd[,3])[1],
             levels(dd[,4])[1]),

           c(levels(dd[,1])[1],	#combination 9
             levels(dd[,2])[1],
             levels(dd[,3])[2],
             levels(dd[,4])[1]),

           c(levels(dd[,1])[1],	#combination 17
             levels(dd[,2])[1],
             levels(dd[,3])[3],
             levels(dd[,4])[1]),

           c(levels(dd[,1])[1],	#combination 25
             levels(dd[,2])[1],
             levels(dd[,3])[1],
             levels(dd[,4])[2]))

smdxc # the result = dd2

Thank you very much in advance.
Kindly regards,
Muhammad Subianto




More information about the R-help mailing list