[R] Combination that adds a value
    Petr Savicky 
    savicky at praha1.ff.cuni.cz
       
    Mon Mar 21 12:53:21 CET 2011
    
    
  
On Mon, Mar 21, 2011 at 04:08:50AM -0700, Julio Rojas wrote:
> Dear all, I have three vectors "x<-1:n", "y<-1:m" and "z<-2:(n+m)". I need to find all combinations of "x" and "y" that add up a given value of "z", e.g.,  for "z==3" the combinations will be "list(c(1,2),c(2,1))".
Dear Julio:
Try the following.
  n <- 3
  m <- 4
  x <- 1:n
  y <- 1:m
  a <- expand.grid(x=x, y=y)
  b <- subset(a, x + y == 3)
  b
    x y
  2 2 1
  4 1 2
In order to create a list of the required pairs, try
the following
  out <- vector("list", nrow(b))
  for (i in seq.int(along=out)) {
      out[[i]] <- c(b[i, 1], b[i, 2])
  }
Hope this helps.
Petr Savicky.
    
    
More information about the R-help
mailing list