[R] combination which limited

Gabor Grothendieck ggrothendieck at gmail.com
Sat Jun 11 21:31:54 CEST 2005


On 6/11/05, Marc Schwartz <MSchwartz at mn.rr.com> wrote:
> On Sat, 2005-06-11 at 20:44 +0200, Muhammad Subianto wrote:
> > Dear R-helpers,
> > I am learning about combination in R.
> > I want to combination all of
> > possible variable but it limited.
> > I am sorry I could not explain exactly.
> > For usefull I give an example
> >   interface <- c("usb","fireware","infra","bluetooth")
> >   screen    <- c("lcd","cube")
> >   computer  <- c("pc","server","laptop")
> >   available <- c("yes","no")
> >
> > What the result I need, something like this below,
> >   usb          lcd     pc      yes
> >   fireware     lcd     pc      yes
> >   infra        lcd     pc      yes
> >   bluetooth    lcd     pc      yes
> >   usb          cube    pc      yes
> >   usb          lcd     server  yes
> >   usb          lcd     laptop  yes
> >   usb          lcd     pc      no
> >
> > How can I do that?
> > I was wondering if someone can help me.
> > Thanks you for your time and best regards,
> > Muhammad Subianto
> 
> Use:
> 
> > expand.grid(interface, screen, computer, available)
>        Var1 Var2   Var3 Var4
> 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
> 6   fireware cube     pc  yes
> 7      infra cube     pc  yes
> 8  bluetooth cube     pc  yes
> 9        usb  lcd server  yes
> 10  fireware  lcd server  yes
> 11     infra  lcd server  yes
> 12 bluetooth  lcd server  yes
> 13       usb cube server  yes
> 14  fireware cube server  yes
> 15     infra cube server  yes
> 16 bluetooth cube server  yes
> 17       usb  lcd laptop  yes
> 18  fireware  lcd laptop  yes
> 19     infra  lcd laptop  yes
> 20 bluetooth  lcd laptop  yes
> 21       usb cube laptop  yes
> 22  fireware cube laptop  yes
> 23     infra cube laptop  yes
> 24 bluetooth cube laptop  yes
> 25       usb  lcd     pc   no
> 26  fireware  lcd     pc   no
> 27     infra  lcd     pc   no
> 28 bluetooth  lcd     pc   no
> 29       usb cube     pc   no
> 30  fireware cube     pc   no
> 31     infra cube     pc   no
> 32 bluetooth cube     pc   no
> 33       usb  lcd server   no
> 34  fireware  lcd server   no
> 35     infra  lcd server   no
> 36 bluetooth  lcd server   no
> 37       usb cube server   no
> 38  fireware cube server   no
> 39     infra cube server   no
> 40 bluetooth cube server   no
> 41       usb  lcd laptop   no
> 42  fireware  lcd laptop   no
> 43     infra  lcd laptop   no
> 44 bluetooth  lcd laptop   no
> 45       usb cube laptop   no
> 46  fireware cube laptop   no
> 47     infra cube laptop   no
> 48 bluetooth cube laptop   no
> 
> 
> See ?expand.grid for more information.
> 


After you do the above you will still want to cut it down to just
the rows you need.

As expained, use expand.grid.  Let's assume you used this statement:

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]

or if you want most of them it may be easier to record which ones
you do not want:

ndix <- c(2,4,7)
dd2 <- dd[,-ndix]

2. Another possibility is to export it to a spreadsheet and visually 
delete the rows you don't want.  

3. A third possibility is to install JGR (which is a free Java GUI
front end to R).
First download and install JGR from:    http://stats.math.uni-augsburg.de/JGR/
In JGR (I am using Windows and its possible that the instructions vary
slightly on other platforms):

1. create dd as explained 
2. bring up the object browser using the menu Tools | Object Browser
    or just ctrl-B
3. Select dd from the object browser
4. This will put you into a spreadsheet in which you can select the
rows you want
     to delete (hold down ctrl for the 2nd and subsequent selection to have a 
    non-contiguous multi-row selection).
5. Select Tools | Remove Rows
6. Click on Apply in the lower right of the spreadsheet.


7. Click on X on the upper right of the spreadsheet.

the menu entry Tools | Remove Rows.




More information about the R-help mailing list