wsumBy
The wsumBy
groups the data column according to groupByColumns
and computes the weighted sum using weightColumn
for the rest of the fields.
If the weight column is a floating point type, all result columns will be doubles. If the weight column is an integral type, all integral input columns will have long results and all floating point input columns will have double results.
Syntax
table.wsumBy(weightColumn)
table.wsumBy(weightColumn, groupByColumns...)
table.wsumBy(weightColumn, groupByColumns)
Parameters
Parameter | Type | Description |
---|---|---|
weightColumn | String | The column to use as the weight for the calculation. |
groupByColumns | String... | The column(s) by which to group data.
|
groupByColumns | ColumnName... | The column(s) by which to group data.
|
groupByColumns | Collection<String> | The column(s) by which to group data.
|
Returns
A new table containing the weighted sum of the data column, grouped by the specified columns.
Examples
In this example, wsumBy
returns the weighted sum of the Num1
column, with no grouping columns.
source = newTable(
intCol("Num1", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
intCol("Num2", 5, 4, 3, 2, 1, 1, 1, 1, 1, 1)
)
result = source.wsumBy("Num2")
- source
- result
In this example, wsumBy
returns the weighted sum of the Num1
column, grouped by the Letter
column.
source = newTable(
stringCol("Letter", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B"),
intCol("Num1", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
intCol("Num2", 5, 4, 3, 2, 1, 1, 1, 1, 1, 1)
)
result = source.wsumBy("Num2", "Letter")
- source
- result