Cartesian product data frame

You can use expand.grid(A, B, C)


EDIT: an alternative to using do.call to achieve the second part, is the function mdply from the package plyr:

library(plyr)

d = expand.grid(x = A, y = B, z = C)
d = mdply(d, f)

To illustrate its usage using a trivial function ‘paste’, you can try

d = mdply(d, 'paste', sep = '+');

Leave a Comment