rotate
for filters
Rotates a table or record clockwise (default) or counter-clockwise (use --ccw flag).
Signature
> rotate {flags} ...rest
Flags
--ccw
: rotate counter clockwise
Parameters
...rest
: the names to give columns once rotated
Input/output types:
input | output |
---|---|
record | table |
table | table |
Examples
Rotate a record clockwise, producing a table (like transpose
but with column order reversed)
> {a:1, b:2} | rotate
╭───┬─────────┬─────────╮
│ # │ column0 │ column1 │
├───┼─────────┼─────────┤
│ 0 │ 1 │ a │
│ 1 │ 2 │ b │
╰───┴─────────┴─────────╯
Rotate 2x3 table clockwise
> [[a b]; [1 2] [3 4] [5 6]] | rotate
╭───┬─────────┬─────────┬─────────┬─────────╮
│ # │ column0 │ column1 │ column2 │ column3 │
├───┼─────────┼─────────┼─────────┼─────────┤
│ 0 │ 5 │ 3 │ 1 │ a │
│ 1 │ 6 │ 4 │ 2 │ b │
╰───┴─────────┴─────────┴─────────┴─────────╯
Rotate table clockwise and change columns names
> [[a b]; [1 2]] | rotate col_a col_b
╭───┬───────┬───────╮
│ # │ col_a │ col_b │
├───┼───────┼───────┤
│ 0 │ 1 │ a │
│ 1 │ 2 │ 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 │ 2 │ 4 │ 6 │
│ 1 │ a │ 1 │ 3 │ 5 │
╰───┴─────────┴─────────┴─────────┴─────────╯
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 │
╰───┴───────┴───────╯