a_ply(.data, .margins, .fun, ..., .expand=TRUE,
    .progress="none", .print=FALSE)data by.  1 splits up by rows, 2 by columns and c(1,2) by rows and columns, and so on for higher dimensions.fun.data is a data frame, should output be 1d 
(expand = FALSE), with an element for each row; or nd (expand = TRUE),
with a dimension for each variable.create_progress_barFALSE).fun to each piece, and then combine the pieces
  into a single data structure.  This function splits
  matrices, arrays and data frames by dimensions and
  discards the output.  This is useful for functions that
  you are calling purely for their side effects like
  display plots and saving output.