ungroup

Syntax

ungroup(X)

Arguments

X must be a table object.

Details

For table X, where some columns are array vectors or columnar tuples, returns the normalized table, with one row for each element of the flattened array vector or columnar tuple.

If X does not contain array vectors or columnar tuples or the number of rows for X is 0, returns X directly.

Examples

$ x = array(INT[], 0).append!([1 2 3, 4 5, 6 7 8, 9 10])
$ t = table(1 2 3 4 as id, x as vol)
$ ungroup(t)

// output
id vol
-- -------
1  1
1  2
1  3
2  4
2  5
3  6
3  7
3  8
4  9
4  10

// create a table where the column price is a columnar tuple
sym = `st1`st2`st3
price = [[3.1,2.5,2.8], [3.1,3.3], [3.2,2.9,3.3]]
t = table(sym, price)
t;
sym price
st1 [3.1000,2.5000,2.8000]
st2 [3.1000,3.3000]
st3 [3.2000,2.9000,3.3000]
$ ungroup(t)
sym price
st1 3.1
st1 2.5
st1 2.8
st2 3.1
st2 3.3
st3 3.2
st3 2.9
st3 3.3
$ sym = `st1`st2`st2`st1`st3`st1`st3`st2`st3
$ volume = 106 115 121 90 130 150 145 123 155;
$ t = table(sym, volume);
$ t;

$ t1 = select toArray(volume) as volume_all from t group by sym;
$ t1;
sym volume_all
st1 [106,90,150]
st2 [115,121,123]
st3 [130,145,155]
$ ungroup(t1)
sym volume_all
st1 106
st1 90
st1 150
st2 115
st2 121
st2 123
st3 130
st3 145
st3 155