diff --git a/docs/commands/histogram.md b/docs/commands/histogram.md new file mode 100644 index 0000000000..b2f5f3be5b --- /dev/null +++ b/docs/commands/histogram.md @@ -0,0 +1,172 @@ +# histogram + +Creates a new table with a histogram based on the column name passed in. + +Syntax: `histogram ...args` + +### Parameters + +* ``: name of the column to graph by +* `args`: column name to give the histogram's frequency column + +## Examples + +Let's say we have this file `random_numers.csv` which contains 50 random numbers. + +**Note**: The input doesn't have to be numbers it works on strings too. Try it out. + +```shell +> open random_numbers.csv +━━━━┯━━━━━━━━━━━━━━━ + # │ random number +────┼─────────────── + 0 │ 87 + 1 │ 46 + 2 │ 39 + + ... + + 47 │ 94 + 48 │ 61 + 49 │ 67 +━━━━┷━━━━━━━━━━━━━━━ +``` + +If we now want to see how often the different numbers were generated, we can use the `histogram` function: + +```shell +> open random_numbers.csv | histogram "random number" +━━━━┯━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + # │ random number │ frecuency +────┼───────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────── + 0 │ 10 │ ************************* + 1 │ 14 │ ************************************************** + 2 │ 17 │ ************************* + 3 │ 22 │ ************************* + 4 │ 24 │ ************************* + 5 │ 28 │ ************************* + 6 │ 29 │ ************************* + 7 │ 31 │ ************************* + 8 │ 37 │ ************************* + 9 │ 38 │ ************************* + 10 │ 39 │ ************************* + 11 │ 45 │ ************************* + 12 │ 46 │ *************************************************************************** + 13 │ 49 │ ************************* + 14 │ 5 │ ************************* + 15 │ 51 │ *************************************************************************** + 16 │ 52 │ ************************* + 17 │ 55 │ ************************* + 18 │ 56 │ ************************************************** + 19 │ 60 │ ************************* + 20 │ 61 │ ************************************************** + 21 │ 64 │ ************************* + 22 │ 65 │ ************************* + 23 │ 67 │ ************************************************** + 24 │ 68 │ ************************* + 25 │ 73 │ ************************* + 26 │ 80 │ ************************************************** + 27 │ 82 │ ************************* + 28 │ 86 │ **************************************************************************************************** + 29 │ 87 │ ************************************************** + 30 │ 88 │ ************************* + 31 │ 89 │ ************************* + 32 │ 9 │ ************************* + 33 │ 92 │ ************************* + 34 │ 94 │ ************************* + 35 │ 96 │ ************************* + 36 │ 99 │ ************************* +━━━━┷━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +``` + +We can also set the name of the second column or sort the table: + +```shell +> open random_numbers.csv | histogram "random number" probability +━━━━┯━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + # │ random number │ probability +────┼───────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────── + 0 │ 10 │ ************************* + 1 │ 14 │ ************************************************** + 2 │ 17 │ ************************* + 3 │ 22 │ ************************* + 4 │ 24 │ ************************* + 5 │ 28 │ ************************* + 6 │ 29 │ ************************* + 7 │ 31 │ ************************* + 8 │ 37 │ ************************* + 9 │ 38 │ ************************* + 10 │ 39 │ ************************* + 11 │ 45 │ ************************* + 12 │ 46 │ *************************************************************************** + 13 │ 49 │ ************************* + 14 │ 5 │ ************************* + 15 │ 51 │ *************************************************************************** + 16 │ 52 │ ************************* + 17 │ 55 │ ************************* + 18 │ 56 │ ************************************************** + 19 │ 60 │ ************************* + 20 │ 61 │ ************************************************** + 21 │ 64 │ ************************* + 22 │ 65 │ ************************* + 23 │ 67 │ ************************************************** + 24 │ 68 │ ************************* + 25 │ 73 │ ************************* + 26 │ 80 │ ************************************************** + 27 │ 82 │ ************************* + 28 │ 86 │ **************************************************************************************************** + 29 │ 87 │ ************************************************** + 30 │ 88 │ ************************* + 31 │ 89 │ ************************* + 32 │ 9 │ ************************* + 33 │ 92 │ ************************* + 34 │ 94 │ ************************* + 35 │ 96 │ ************************* + 36 │ 99 │ ************************* +━━━━┷━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +``` + +```shell +> open random_numbers.csv | histogram "random number" probability | sort-by probability +━━━━┯━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + # │ random number │ probability +────┼───────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────── + 0 │ 10 │ ************************* + 1 │ 17 │ ************************* + 2 │ 22 │ ************************* + 3 │ 24 │ ************************* + 4 │ 28 │ ************************* + 5 │ 29 │ ************************* + 6 │ 31 │ ************************* + 7 │ 37 │ ************************* + 8 │ 38 │ ************************* + 9 │ 39 │ ************************* + 10 │ 45 │ ************************* + 11 │ 49 │ ************************* + 12 │ 5 │ ************************* + 13 │ 52 │ ************************* + 14 │ 55 │ ************************* + 15 │ 60 │ ************************* + 16 │ 64 │ ************************* + 17 │ 65 │ ************************* + 18 │ 68 │ ************************* + 19 │ 73 │ ************************* + 20 │ 82 │ ************************* + 21 │ 88 │ ************************* + 22 │ 89 │ ************************* + 23 │ 9 │ ************************* + 24 │ 92 │ ************************* + 25 │ 94 │ ************************* + 26 │ 96 │ ************************* + 27 │ 99 │ ************************* + 28 │ 14 │ ************************************************** + 29 │ 56 │ ************************************************** + 30 │ 61 │ ************************************************** + 31 │ 67 │ ************************************************** + 32 │ 80 │ ************************************************** + 33 │ 87 │ ************************************************** + 34 │ 46 │ *************************************************************************** + 35 │ 51 │ *************************************************************************** + 36 │ 86 │ **************************************************************************************************** +━━━━┷━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +``` \ No newline at end of file diff --git a/docs/commands/sort-by.md b/docs/commands/sort-by.md index 1f0f3da9ed..3d75dec6d4 100644 --- a/docs/commands/sort-by.md +++ b/docs/commands/sort-by.md @@ -1,5 +1,5 @@ -# env +# sort-by The `sort-by` command sorts the table being displayed in the terminal by a chosen column(s). diff --git a/docs/commands/split-column.md b/docs/commands/split-column.md new file mode 100644 index 0000000000..7cb3712755 --- /dev/null +++ b/docs/commands/split-column.md @@ -0,0 +1,72 @@ +# split-column + +Split row contents across multiple columns via the separator. + +Syntax: `split-column ...args{flags}` + +### Parameters + +* ``: string that denotes what separates columns +* `args`: column names to give the new columns. If not specified they will be set to `Column1` `Column2` ... + +### Flags + + --collapse-empty + Removes empty columns + +## Examples + +If we have file structured like this: + +```shell +0.12643678160919541 | 0.6851851851851852 | 0.273972602739726 +0.28735632183908044 | 0.09259259259259259 | 0.6986301369863014 +0.8045977011494253 | 0.8148148148148148 | 0.7397260273972602 +0.28735632183908044 | 0.09259259259259259 | 0.547945205479452 +0.6896551724137931 | 0.7037037037037037 | 1.2465753424657535 +0.6896551724137931 | 0.8333333333333334 | 0.4657534246575342 +0.9080459770114943 | 1.3333333333333333 | 0.4931506849315068 +0.9310344827586207 | 1.1296296296296295 | 0.7123287671232876 +0.3448275862068966 | 0.018518518518518517 | 0.6575342465753424 +1.0459770114942528 | 1.0925925925925926 | 0.6164383561643836 +``` + +We can build a table from it using the `split-column` command + +```shell +> open coordinates.txt | lines | split-column " | " +━━━┯━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━ + # │ Column1 │ Column2 │ Column3 +───┼─────────────────────┼──────────────────────┼──────────────────── + 0 │ 0.12643678160919541 │ 0.6851851851851852 │ 0.273972602739726 + 1 │ 0.28735632183908044 │ 0.09259259259259259 │ 0.6986301369863014 + 2 │ 0.8045977011494253 │ 0.8148148148148148 │ 0.7397260273972602 + 3 │ 0.28735632183908044 │ 0.09259259259259259 │ 0.547945205479452 + 4 │ 0.6896551724137931 │ 0.7037037037037037 │ 1.2465753424657535 + 5 │ 0.6896551724137931 │ 0.8333333333333334 │ 0.4657534246575342 + 6 │ 0.9080459770114943 │ 1.3333333333333333 │ 0.4931506849315068 + 7 │ 0.9310344827586207 │ 1.1296296296296295 │ 0.7123287671232876 + 8 │ 0.3448275862068966 │ 0.018518518518518517 │ 0.6575342465753424 + 9 │ 1.0459770114942528 │ 1.0925925925925926 │ 0.6164383561643836 +━━━┷━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━ +``` + +And give names to the columns + +```shell +> open coordinates.txt | lines | split-column " | " x y z +━━━┯━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━ + # │ x │ y │ z +───┼─────────────────────┼──────────────────────┼──────────────────── + 0 │ 0.12643678160919541 │ 0.6851851851851852 │ 0.273972602739726 + 1 │ 0.28735632183908044 │ 0.09259259259259259 │ 0.6986301369863014 + 2 │ 0.8045977011494253 │ 0.8148148148148148 │ 0.7397260273972602 + 3 │ 0.28735632183908044 │ 0.09259259259259259 │ 0.547945205479452 + 4 │ 0.6896551724137931 │ 0.7037037037037037 │ 1.2465753424657535 + 5 │ 0.6896551724137931 │ 0.8333333333333334 │ 0.4657534246575342 + 6 │ 0.9080459770114943 │ 1.3333333333333333 │ 0.4931506849315068 + 7 │ 0.9310344827586207 │ 1.1296296296296295 │ 0.7123287671232876 + 8 │ 0.3448275862068966 │ 0.018518518518518517 │ 0.6575342465753424 + 9 │ 1.0459770114942528 │ 1.0925925925925926 │ 0.6164383561643836 +━━━┷━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━ +``` \ No newline at end of file