Description Usage Arguments Details Value Note Author(s) See Also Examples

Split the vector x into partitions and apply the function to each partition separately. Computation restarts for each partition.

The logic is the same as the OLAP functions in SQL, e.g. `SUM(x) OVER (PARTITION BY group)`

.

1 2 3 4 5 6 7 |

`x` |
a vector that should be operated. |

`by` |
list of one or more factors, each of same length as |

`FUN` |
Function to apply for each factor level combination. |

`formula` |
a formula of the form |

`data` |
an optional matrix or data frame (or similar: see |

`subset` |
an optional vector specifying a subset of observations to be used. |

`na.action` |
a function which indicates what should happen when the data contain |

`vnames` |
name for the new variables. |

`collapse` |
logical, determining if the results should be collapsed to groups. Default is |

`...` |
optional arguments to |

This is more or less the same as the function `ave`

, with the arguments organized a bit different and offering more flexibility.

a data.frame with the same number of rows as length as `x`

containing the groupwise results of `FUN`

and the used group factors.

The attribute `response`

denotes the name of the response variable in case the formula interface was used.

Optional arguments to `FUN`

supplied by the ... argument are not divided into cells. It is therefore inappropriate for `FUN`

to expect additional arguments with the same length as `x`

.

Andri Signorell <andri@signorell.net>

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | ```
d.frm <- data.frame(x=rep(1:4,3), v=sample(x=1:3, size=12, replace=TRUE),
g=gl(4,3,labels=letters[1:4]), m=gl(3,4,labels=LETTERS[1:3]))
# SQL-OLAP: sum() over (partition by g)
DoBy(d.frm$x, d.frm$g, FUN=sum)
# DoBy(d.frm$x, FUN=sum)
# more than 1 grouping variables are organized as list as in tapply:
DoBy(d.frm$x, list(d.frm$g, d.frm$m), mean)
# count
d.frm$count <- DoBy(d.frm$x, d.frm$g, length)
# rank
d.frm$rank <- DoBy(d.frm$v, d.frm$g, rank)
d.frm$dense_rank <- DoBy(d.frm$v, d.frm$g, Rank, ties.method="dense")
d.frm$rank_desc <- DoBy(d.frm$x, d.frm$g, function(x) rank(-x))
# row_number
d.frm$row_number <- DoBy(d.frm$v, d.frm$g, function(x) order(x))
d.frm
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.