The package plyroffers features that make it easy to create an entire split / apply / comb structure. As far as I know, you can only split one thing: a list, an array data.frame, an array.
, , , mapply ( Map), . plyr , R. , - , plyr:
d1.split <- split(d1, list(d1$x, d1$y))
d2.split <- split(d2, list(d2$x, d2$y))
res.split <- Map(function(df1, df2) data.frame(x = df1$x, y = df1$y,
out = df1$z + df2$z),
d1.split, d2.split, USE.NAMES = FALSE)
res <- do.call(rbind, res.split)
, , , . , , , res <- do.call(rbind, Map(FUN, split(d1, ...), split(d2, ...), ...)), .