[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