transpose for filters
Transposes the table contents so rows become columns and columns
become rows.
Signature
> transpose {flags} ...rest
Flags
-
--header-row, -r: treat the first row as column names -
--ignore-titles, -i: don't transpose the column names into values -
--as-record, -d: transfer to record if the result is a table and contains only one row -
--keep-last, -l: on repetition of record fields due toheader-row, keep the last value obtained -
--keep-all, -a: on repetition of record fields due toheader-row, keep all the values obtained
Parameters
-
...rest: the names to give columns once transposed
Input/output types:
| input | output |
|---|---|
| record | table |
| table | any |
Examples
Transposes the table contents with default column names
> [[c1 c2]; [1 2]] | transpose
╭───┬─────────┬─────────╮
│ # │ column0 │ column1 │
├───┼─────────┼─────────┤
│ 0 │ c1 │ 1 │
│ 1 │ c2 │ 2 │
╰───┴─────────┴─────────╯
Transposes the table contents with specified column names
> [[c1 c2]; [1 2]] | transpose key val
╭───┬─────┬─────╮
│ # │ key │ val │
├───┼─────┼─────┤
│ 0 │ c1 │ 1 │
│ 1 │ c2 │ 2 │
╰───┴─────┴─────╯
Transposes the table without column names and specify a new column name
> [[c1 c2]; [1 2]] | transpose --ignore-titles val
╭───┬─────╮
│ # │ val │
├───┼─────┤
│ 0 │ 1 │
│ 1 │ 2 │
╰───┴─────╯
Transfer back to record with -d flag
> {c1: 1, c2: 2} | transpose | transpose --ignore-titles -r -d
╭────┬───╮
│ c1 │ 1 │
│ c2 │ 2 │
╰────┴───╯