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 to header-row, keep the last value obtained
  • --keep-all, -a: on repetition of record fields due to header-row, keep all the values obtained

Parameters

  • ...rest: The names to give columns once transposed.

Input/output types:

inputoutput
recordtable
tableany

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
╰────┴───╯