rotate for filters

Rotates a table or record clockwise (default) or counter-clockwise (use --ccw flag).

Signature

> rotate ...rest --ccw

Parameters

  • ...rest: the names to give columns once rotated
  • --ccw (-): rotate counter clockwise

Examples

Rotate a record clockwise, producing a table (like transpose but with column order reversed)

> {a:1, b:2} | rotate
╭───┬─────────┬─────────╮
│ # │ column0 │ column1 │
├───┼─────────┼─────────┤
│ 01 │ a       │
│ 12 │ b       │
╰───┴─────────┴─────────╯

Rotate 2x3 table clockwise

> [[a b]; [1 2] [3 4] [5 6]] | rotate
╭───┬─────────┬─────────┬─────────┬─────────╮
│ # │ column0 │ column1 │ column2 │ column3 │
├───┼─────────┼─────────┼─────────┼─────────┤
│ 0531 │ a       │
│ 1642 │ b       │
╰───┴─────────┴─────────┴─────────┴─────────╯

Rotate table clockwise and change columns names

> [[a b]; [1 2]] | rotate col_a col_b
╭───┬───────┬───────╮
│ # │ col_a │ col_b │
├───┼───────┼───────┤
│ 01 │ a     │
│ 12 │ b     │
╰───┴───────┴───────╯

Rotate table counter clockwise

> [[a b]; [1 2]] | rotate --ccw
╭───┬─────────┬─────────╮
│ # │ column0 │ column1 │
├───┼─────────┼─────────┤
│ 0 │ b       │       2 │
│ 1 │ a       │       1 │
╰───┴─────────┴─────────╯

Rotate table counter-clockwise

> [[a b]; [1 2] [3 4] [5 6]] | rotate --ccw
╭───┬─────────┬─────────┬─────────┬─────────╮
│ # │ column0 │ column1 │ column2 │ column3 │
├───┼─────────┼─────────┼─────────┼─────────┤
│ 0 │ b       │       246 │
│ 1 │ a       │       135 │
╰───┴─────────┴─────────┴─────────┴─────────╯

Rotate table counter-clockwise and change columns names

> [[a b]; [1 2]] | rotate --ccw col_a col_b
╭───┬───────┬───────╮
│ # │ col_a │ col_b │
├───┼───────┼───────┤
│ 0 │ b     │     2 │
│ 1 │ a     │     1 │
╰───┴───────┴───────╯