# future_by

##### Apply a Function to a Data Frame Split by Factors via Futures

Apply a Function to a Data Frame Split by Factors via Futures

##### Usage

`future_by(data, INDICES, FUN, ..., simplify = TRUE)`

##### Arguments

- data
An R object, normally a data frame, possibly a matrix.

- INDICES
A factor or a list of factors, each of length

`nrow(data)`

.- FUN
a function to be applied to (usually data-frame) subsets of

`data`

.- simplify
logical: see base::tapply.

- …
Additional arguments pass to

`future_lapply()`

and then to`FUN()`

.

##### Details

Internally, `data`

is grouped by `INDICES`

into a list of `data`

subset elements which is then processed by `future_lapply()`

.
When the groups differ significantly in size, the processing time
may differ significantly between the groups.
To correct for processing-time imbalances, adjust the amount of chunking
via arguments `future.scheduling`

and `future.chunk.size`

.

##### Value

An object of class "by", giving the results for each subset.
This is always a list if simplify is false, otherwise a list
or array (see base::tapply).
See also `base::by()`

for details.

##### Examples

```
# NOT RUN {
## ---------------------------------------------------------
## by()
## ---------------------------------------------------------
library(datasets) ## warpbreaks
library(stats) ## lm()
y0 <- by(warpbreaks, warpbreaks[,"tension"],
function(x) lm(breaks ~ wool, data = x))
plan(multiprocess)
y1 <- future_by(warpbreaks, warpbreaks[,"tension"],
function(x) lm(breaks ~ wool, data = x))
plan(sequential)
y2 <- future_by(warpbreaks, warpbreaks[,"tension"],
function(x) lm(breaks ~ wool, data = x))
# }
```

*Documentation reproduced from package future.apply, version 1.3.0, License: GPL (>= 2)*