select
for filters
Select only these columns or rows from the input. Opposite of
`reject`.
Signature
> select {flags} ...rest
Flags
-
--ignore-errors, -i
: ignore missing data (make all cell path members optional)
Parameters
-
...rest
: the columns to select from the table
Input/output types:
input | output |
---|---|
list<any> | any |
record | record |
table | table |
Examples
Select a column in a table
> [{a: a b: b}] | select a
╭───┬───╮
│ # │ a │
├───┼───┤
│ 0 │ a │
╰───┴───╯
Select a field in a record
> {a: a b: b} | select a
╭───┬───╮
│ a │ a │
╰───┴───╯
Select just the name
column
> ls | select name
Select the first four rows (this is the same as
first 4
)
> ls | select 0 1 2 3
Select columns by a provided list of columns
> let cols = [name type];[[name type size]; [Cargo.toml toml 1kb] [Cargo.lock toml 2kb]] | select $cols
Select columns by a provided list of columns
> [[name type size]; [Cargo.toml toml 1kb] [Cargo.lock toml 2kb]] | select ["name", "type"]
╭───┬────────────┬──────╮
│ # │ name │ type │
├───┼────────────┼──────┤
│ 0 │ Cargo.toml │ toml │
│ 1 │ Cargo.lock │ toml │
╰───┴────────────┴──────╯
Select rows by a provided list of rows
> let rows = [0 2];[[name type size]; [Cargo.toml toml 1kb] [Cargo.lock toml 2kb] [file.json json 3kb]] | select $rows
Notes
This differs from get
in that, rather than
accessing the given value in the data structure, it removes all
non-selected values from the structure. Hence, using
select
on a table will produce a table, a list will
produce a list, and a record will produce a record.