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")
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")