Cumulative product of specified columns by group
uby_cum_prod.Rd
Creates a cumulative product UpdateByOp that computes the cumulative product of each column in cols
for each aggregation group.
Details
This function acts on aggregation groups specified with the by
parameter of the update_by()
caller function.
The aggregation groups are defined by the unique combinations of values in the by
columns. For example,
if by = c("A", "B")
, then the aggregation groups are defined by the unique combinations of values in the
A
and B
columns.
This function, like other Deephaven uby
functions, is a generator function. That is, its output is another
function called an UpdateByOp
intended to be used in a call to update_by()
. This detail is typically
hidden from the user. However, it is important to understand this detail for debugging purposes, as the output of
a uby
function can otherwise seem unexpected.
For more information, see the vignette on uby
functions by running
vignette("update_by")
.
Examples
if (FALSE) { # \dontrun{
library(rdeephaven)
# connecting to Deephaven server
client <- Client$new("localhost:10000", auth_type = "psk", auth_token = "my_secret_token")
# create data frame, push to server, retrieve TableHandle
df <- data.frame(
timeCol = seq.POSIXt(as.POSIXct(Sys.Date()), as.POSIXct(Sys.Date() + 0.01), by = "1 sec")[1:500],
boolCol = sample(c(TRUE, FALSE), 500, TRUE),
col1 = sample(10000, size = 500, replace = TRUE),
col2 = sample(10000, size = 500, replace = TRUE),
col3 = 1:500
)
th <- client$import_table(df)
# compute cumulative product of col1 and col2
th1 <- th$
update_by(uby_cum_prod(c("col1CumProd = col1", "col2CumProd = col2")))
# compute cumulative product of col1 and col2, grouped by boolCol
th2 <- th$
update_by(uby_cum_prod(c("col1CumProd = col1", "col2CumProd = col2")), by = "boolCol")
# compute cumulative product of col1 and col2, grouped by boolCol and parity of col3
th3 <- th$
update("col3Parity = col3 % 2")$
update_by(uby_cum_prod(c("col1CumProd = col1", "col2CumProd = col2")), by = c("boolCol", "col3Parity"))
client$close()
} # }