These allow you to override the PARTITION BY and ORDER BY clauses of window functions generated by grouped mutates.

window_order(.data, ...)

window_frame(.data, from = -Inf, to = Inf)

Arguments

.data

A lazy data frame backed by a database query.

...

Variables to order by

from, to

Bounds of the frame.

Examples

library(dplyr, warn.conflicts = FALSE) db <- memdb_frame(g = rep(1:2, each = 5), y = runif(10), z = 1:10) db %>% window_order(y) %>% mutate(z = cumsum(y)) %>% show_query()
#> <SQL> #> SELECT `g`, `y`, SUM(`y`) OVER (ORDER BY `y` ROWS UNBOUNDED PRECEDING) AS `z` #> FROM `dbplyr_030`
db %>% group_by(g) %>% window_frame(-3, 0) %>% window_order(z) %>% mutate(z = sum(x)) %>% show_query()
#> Warning: Missing values are always removed in SQL. #> Use `SUM(x, na.rm = TRUE)` to silence this warning #> This warning is displayed only once per session.
#> <SQL> #> SELECT `g`, `y`, SUM(`x`) OVER (PARTITION BY `g` ORDER BY `z` ROWS 3 PRECEDING) AS `z` #> FROM `dbplyr_030`